Miért akar objektumokat létrehozni dinamikus helyfoglalásnál? (c++)
Van 2 osztályom: A és B
A-nak van több konstruktora is,paraméter nélküli esetén a képernyőről olvassa be az adatokat
B-nek van egy adattagja : A* elemek,ez A-beli objektumokat tárol
B konstruktora egy int-et vár,hogy hány objektumnak foglaljon helyet:
B(int db){
this -> elemek = new A[db];
}
Ilyenkor ha a main függvényben létre akarok hozni egy B objektumot,akkor ebben az esetben 5-ször meghívja A-nak a paraméter nélküli konstruktorát
B név(5)
Ez miért van?
"A-nak van több konstruktora is,paraméter nélküli esetén a képernyőről olvassa be az adatokat"
Ez egyébként borzasztó rossz konvenció, ilyet ne csinálj.
"ebben az esetben 5-ször meghívja A-nak a paraméter nélküli konstruktorát"
Kénytelen meghívni, hiszen A osztályú objektumokat hozol létre a new kulcsszóval. Más szóval: memóriát foglalsz nekik, és B-nek azokhoz muszáj konstruktort hívnia. Ha A-nak nem lenne paraméter nélküli konstruktora, fordításnál itt hibát dobna.
Véletlenül nem csak A objektumokra mutató pointer tömböt akarsz létrehozni a B konstruktorában?
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!