Tworzenie i inicjalizacja obiektu klasy w konstruktorze innej klasy

0

Mam 2 klasy, w jednej z nich np. A potrzebuję utworzyć obiekt klasy B, który chciałbym od razu zainicjować i korzystać z niego w kilku metodach klasy A.

0

zrob to w konstruktorze

2

Jak masz w klasie A pole (zmienną) typu B, to masz od razu. Chyba że masz tylko wskaźnik do B, no to w konstruktorze tworzysz, a potem w destruktorze usuwasz.

#include <iostream>
#include <string>
using namespace std;

struct B
{
	string name;
	void greet() { cout << "Hi, Im " + name << endl; }
};

struct C
{
	void growl() { cout << "Im noname" << endl; }
};

class A
{
public:
	A() { c = new C(); }
	~A() { delete c; }
	
	void display() 
	{ 
		b.name = "John";
		b.greet();
		c->growl();
	}
	
private:
	B b;
	C* c;
};

int main() {
	A a;
	a.display();
	return 0;
}

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