Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok létrehozni egy...

Amanda88 kérdése:

Hogyan tudok létrehozni egy olyan tömböt C++-ban, ami egy absztrakt osztályra mutató pointereket tartalmaz?

Figyelt kérdés

Azért nem sikerül mert ugye absztrakt osztályt tilos példányosítani. Az absztrakt osztályom neve: Eloleny. Két leszármaztatott osztály: Allat, Noveny. A létrehozott (absztrakt osztályra mutató pointereket tartalmazó) tömbbe ezekre a leszármaztatott osztályokra mutató pointereket fogom beletenni.


így próbáltam: Eloleny *allatok= new Eloleny;

Hibaüzenet: cannot instantiate abstract class



2014. okt. 12. 15:23
 1/3 anonim ***** válasza:

Csodákat művel a Google "c++ array of abstract class" keresésre. :)


[link]

2014. okt. 12. 15:28
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
most írtad, hogy tudod, hogy nem lehet példányosítani, erre mégis példányosítod...
2014. okt. 12. 23:56
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

1. Nem jó megoldás:


Eloleny* allatok = new Eloleny;


Ugyebár absztrakt osztályt nem lehet példányosítani, ahogy te is írtad. Itt pedig pont ezt teszed. Annyi különbséggel, hogy a heap-ben foglalsz neki helyet.


2. Helyes megoldás:


Te valami ilyesmit akartál szerintem:


Eloleny** allatok new Eloleny*[100];


Ebben az esetben lesz egy memória rész ahol 100 darab mutató van, amik Eloleny-ből származó objektumokra mutatnak.


3. Jó megoldás:


Én a helyedben nem találnám fel a spanyol viaszt. Használj inkább STL vektort:

[link]


std::vector<Eloleny*> allatok;


A konstruktor hívásra viszont vigyáznod kell, minden törlésnél meg kell hívnod a delete operátort az adott mutatóra.


4. Haladó megoldás:


Hogy ne kelljen minden törlés mozgatás és egyéb esetet lekezelned és hogy tuti memory leak mentes legyen az életed, használt smart pointereket. Így minden objektumod destruktora meghívódik ha elfogynak a hivatkozások.

[link]


std::vector<std::shared_ptr<Eloleny>> allatok;

2014. okt. 14. 11:36
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!