Egy virtuális destruktor nem helyben kifejtett (inline) definíciója, hogy néz ki? Mert bárhogy próbálom nem jó.
virtual X::~X() {} //Rossz
X::virtual ~X() {} //Rossz
A lényeg az,hogy ki akarom írni a definícióba is a virtual kulcsszót.Tudom amúgy nem kellene de ragaszkodom hozzá.
Megoldás: a .cpp elejére rakd oda, hogy
#define virtual
"Megoldás: a .cpp elejére rakd oda, hogy #define virtual"
Javíts ki ha tévednék de ez nem hatástalanítja az összes többi virtual kulcsszót?
Egyébként mi értelme a destruktort virtuális eljárásként létrehozni? Alapból is hasonlóan működik nem?
>Javíts ki ha tévednék de ez nem hatástalanítja az összes többi virtual kulcsszót?
Ha az osztályok deklarációja UTÁN rakod, akkor nem, tehát praktikusan az #include sorok után kell rakni..
>Egyébként mi értelme a destruktort virtuális eljárásként létrehozni? Alapból is hasonlóan működik nem?
Nem, a destruktor nem működik virtuálisan alapból.
>jó poén volt iostream
Pontosan jó válasz volt a felvetett problémára. A kérdező is leírja, hogy tudja, hogy nem így kéne, de ő mégis akarja. Ha ő így szeretné, hát lelke rajta.
#define virtual;
Le fordul csak az a baj,hogy enabled by default lesz warning ként.
Ezt nem akarom.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!