(C++) Konstruktor z parametrem typu klasy

Odpowiedz Nowy wątek
2006-12-07 00:19
D.
0

Czy ktoś wie dlaczego nie można zadeklarować takiego konstruktora:

class Klasa {
public:
  Klasa(Klasa);
};

Kompilator (DevC++) pisze że można co najwyżej tak:

class Klasa {
public:
  Klasa(const Klasa&);
};

Pozostało 580 znaków

2006-12-07 00:49
0

Poczytaj o konstruktorach kopiujących w C++.


Pozdrawia DzieX

int getRandomNumber() { return 4; }

Pozostało 580 znaków

2006-12-07 01:00
D.
0

A jakieś konkretne pozycje? Bo jak się domyślam Ty nie znasz odpowiedzi na moje pytanie.

Pozostało 580 znaków

2006-12-07 09:25
0

Nie mozesz zrobic takiego konstruktora Klasa(Klasa) poniewaz jesli chcialbys utworzyc obkiekt klasa to musi on przyjac obiekt klasa. Skoro musi przyjac obiekt klasa tzn ze ten obiekt tez musi byc stworzony przez konstruktor, ktory przyjmuje obiekt klasa i tak w nieskonczonosc. To tak samo jak chcialbys uzyc do tworzenia ksiazek innych ksiazek. Tak sie nie da. Trzeba miec najpierw papier potem tekst potem tusz i dopiero mozesz drukowac ksiazke. A co do konstruktora kopijacego to przyjmuje on referencje do okiektu i kopijue go. Jesli masz klase z samych typow(int,double,bool itd.) to Ci sie on nie przyda. Moze on Ci sie przydac jak masz np wskaznik w klasie, ale i tak jeszcze o tym poczytaj. Przyklady w necie na pewno znajdziesz.

Pozostało 580 znaków

2006-12-07 21:06
0

Troche dziwnie że kompilator nie zezwala na to nawet jeśli mamy zadeklarowany konstruktor domyślny. Ale dla chcącego nic trudnego:

class Klasa {

public:
       Klasa() {}            
};

class Klasa2 : public Klasa {

public:
       Klasa2(Klasa) {}      

};

Pozostało 580 znaków

2006-12-07 21:31
0

Kompilator nie wie czy ty do obiektu klasa nastepnym razem uzyjesz konstruktora domyslnego czy swojego. To co napisales z dziedziczeniem ma juz sens. Klasa2 zawiera w sobie klase. Na przykladzie: Aby zrobic Pojazd(klasa pojazd) najpierw musisz wywolac knstruktory silnika kol itp a dopiero potem konstruktor samego pojazdu.

Pozostało 580 znaków

2006-12-09 13:58
0

Hibo, to co napisałeś to bardziej pasuje do kompozycji, a nie doi dziedziczenia.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0