![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 2.10.2012 Ostrzeżenie: (10%) ![]() ![]() |
Witam, napisałem sobie poniższy kawałek kodu lecz nie działa,
otrzymuję komunikat, że zmienne c i d nie zotały zdefiniowane, nie wiem skąd wynika ten błąd jeżeli za pomocą parenta "dostaje się" do tych zmiennych, przynajmniej tak mi się wydaje, z góry przepraszam jeżeli walnąłem jakąś totalną głupotę w kodzie. |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Private zmień na protected lub public (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 2.10.2012 Ostrzeżenie: (10%) ![]() ![]() |
Zmieniłem, nie działa.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A gdzie Ty masz zdefiniowane te $c i $d ??Bo ja tu widzę przekazanie do funkcji dodaj() tych parametrów kolokwialnie mówiąc z dupy
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@elnino17: @Spawnm: Wygląda na to, że nie rozumiecie czym dziedziczenie jest, a czym nie jest. $liczba i $liczba2 nie mają ze sobą nic wspólnego, a zmienne $c i $d w żaden magiczny sposób nie pojawią się wewnątrz Dodawanie2::dodaj2().
1. http://en.wikipedia.org/wiki/Inheritance_(...ed_programming) 2. http://php.net/manual/en/language.oop5.inheritance.php 3. http://www.php.net/manual/en/keyword.extends.php 4. http://www.php.net/manual/en/keyword.parent.php
Powód edycji: [Spawnm]: mea culpa, nie wczytałem się w kod xd
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 2.10.2012 Ostrzeżenie: (10%) ![]() ![]() |
Na swoją obronę mogę powiedzieć, że dopiero się uczę i sam stworzyłem sobie tego typu problem do rozwiązania wzorując się min. na tym przykładzie z dokumentacji:
Wg mnie za pomocą parent:: "dostajemy się" konstruktora klasy BaseClass i jego wartość mamy dodatkowo w konstruktorze klsay SubClass. Ten post edytował elnino17 3.07.2014, 21:45:37 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 20 Dołączył: 17.01.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam, napisałem sobie poniższy kawałek kodu lecz nie działa,
otrzymuję komunikat, że zmienne c i d nie zotały zdefiniowane, nie wiem skąd wynika ten błąd jeżeli za pomocą parenta "dostaje się" do tych zmiennych, przynajmniej tak mi się wydaje, z góry przepraszam jeżeli walnąłem jakąś totalną głupotę w kodzie. Ale jak sie dostajesz do tych zmiennych ($c,$d)to są tylko argumenty funkcji nie mające nic wspólnego z klasą
To zadziała tylko jak pisał Spawnm - daj protected dla $a i $b w klasie nadrzędnej. parent:: - uzywaj jak zmieniasz funkcje - taka sama nazwa w klasie nadrzednej i podrzednej. Ten post edytował ziolo 3.07.2014, 22:01:02 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli twoim zamierzeniem było otrzymać wynik z pierwszego dodawania, następnie w drugim dodawaniu dodać do pierwszego wyniku nową wartość, to tak ci to nie zadziała, dlatego że są to dwie różne instancje. Albo operujesz na jednej instancji, albo robisz to jakoś bardziej sensownie w stylu przekazywania wyniku z pierwszego dodawania do nowego obiektu. Tyle że w drugim przypadku dziedziczenie nie ma raczej sensu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 14:16 |