Hogyan lehet c++-ban egy osztály adattagjaként inicializálni egy másik osztálytípust?
A Tanar osztály részeként szeretnék létrehozni egy Diak osztályt.
példaként itt a kód ami nem működik:
#include <string>
#include <iostream>
using namespace std;
class Tanar {
std::string nev;
const Diak& a;
public:
Tanar(const Diak& a,std::string nev): a(a), nev(nev) {
}
};
class Diak {
std::string nev;
int eletkor;
public:
Diak(string nev, int eletkor) : nev(nev), eletkor(eletkor) {}
};
int main()
{
Diak Pista("Pista", 21);
Tanar Erzsi(Pista, "Erzsi");
}
Akkor mire gondoltál? A Tanar osztályban tárolsz egy Diak objektumot, amit megkapsz paraméterként. Ha ott akarod létrehozni, akkor tedd bele a konstruktorba a Diak inicializációját.
Az első egy olyan hibára világított rá, amit javítanod kell: nem tudsz felhasználni egy definiálatlan típust. Vagy a teljes definíciót beteszed a Tanar elé, vagy ahogy javasolták: forward deklarálod.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!