[C++] Obiekt jak pole klasy - problem z definicją?

0

Hej, coś mi się wywala kiedy próbuję umieścić obiekt jako pole klasy. Przykładowy kod:


class KlasaZewnetrzna{
public:
	KlasaZewnetrzna(); 

private:
	KlasaWewnetrzna podklasa;	
};

KlasaZewnetrzna::KlasaZewnetrzna(){
	KlasaWewnetrzna podklasa("jakaś zmienna typu char*");
}

Wywala sie na tworzeniu „podklasy” w konstruktorze KlasyZewnętrznej („no appropriate default constructor available”). Pewnie źle to deklaruję w sekcji private, więc może ktoś zna szybkie rozwiązanie problemu? ;)

0

Konstruktory zmiennych składowych wywołuje się na liście inicjalizacyjnej konstruktora. To co Ty robisz w tym konstruktorze, to tworzysz lokalną instancję klasy KlasaWewnętrzna - po opuszczeniu konstruktora przestanie istnieć.

KlasaZewnetrzna::KlasaZewnetrzna() : podklasa("whatever") {}
0

ewentualnie:

KlasaZewnetrzna::KlasaZewnetrzna(){
        podklasa=KlasaWewnetrzna("jakaś zmienna typu const char*");
}

literał tekstowy jest const char* a nie char *.

0

Dzięki za pomoc, działa ;)

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