Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet c++-ban egy...

Hogyan lehet c++-ban egy osztály adattagjaként inicializálni egy másik osztálytípust?

Figyelt kérdés

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");


}



2020. nov. 10. 16:03
 1/3 anonim ***** válasza:
A Tanar osztály előtt deklarálni kell a Diak osztályt, tehát ez a sor kell a Tanar osztály elé: class Diak;
2020. nov. 10. 16:25
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Köszi, hát erre nem gondoltam...
2020. nov. 10. 16:28
 3/3 anonim ***** válasza:
48%

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.

2020. nov. 11. 19:45
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!