Struktura obieków klasy a inicjalizacja.

0

Witam,

Potrzebuję do istniejącego obiektu typu **struct ** dołożyć składnik, który będzie obiektem innej klasy (nie wskaźnikiem na obiekt). Prosty kod przykładowy

 
class lol
{
	uint16_t i;
public:
	lol(int f)
	{ i = f; }
};


struct xxx
{
	xxx() //konstruktor
	{
		obj = lol(2);
	}
	lol obj;
};

Próba inicjalizacji obiektu struct:

xxx structObj; 

Przy kompilacji wywala błąd, jako że nie ma konstruktora domyślnego w klasie lol, której to obiekt jest składnikiem structa xxx.

 
../main.cpp:44: error: no matching function for call to 'lol::lol()'
../main.cpp:36: note: candidates are: lol::lol(int)
../main.cpp:33: note:                 lol::lol(const lol&)
0

eh, falstart :>

anyway, nie wiem nawet w którym miejscu następuje rzekome wywołanie konstruktora domyślnego klasy lol.

Pytanie w pigułce brzmi:
Jak zainicjalizować obiekt structa, który ma jako składnik obiekt innej klasy, nie posiadającej konstruktora domyślnego.

0

xxx():obj(2) //konstruktor
{
}
lol obj;

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