privater Destruktor
-
aber bei den Subklassen net. Das Problem scheint zu sein, wenn die Subklassen einen Destruktor deklarieren (was sie ja nicht müssen) dann gehts scheinbar net.
mfg
-
jede Klasse hat einen und braucht einen dtor.
sogar bei delete this wird der dtor der Klasse aufgerufen
-
Schon klar, aber wenn ich den Destruktor nicvht definiere wird er vom Compiler erzeugt, dass ist scxheinbar OK. Aber wenn ich einen Destruktor definiere oder deklariere gibts aus irgendeinem zugegeben merkwürdigem Grund nen Fehler.
mfg
-
öhm klappt doch..
template <bool OnlyOnTheHEAP> class Base; template <> class Base<true> { protected: ~Base(){} public: Base(){} virtual void destroy(){delete this;} }; class test : public Base<true> { private: ~test(){}; }; int main(int argc, char* argv[]) { test* Test=new test; Test->destroy(); return 0; }
-
es geht im obigen Post um die SUBKLASSSEN.
-
ist test keine SUBklasse?
-
test Test;
Klappt aber immer noch @otze
-
welcher compiler? beim bcb 6.0 klappt das nämlich definitiv nicht mehr:
[C++ Error] Unit1.cpp(24): E2166 Destructor for 'test' is not accessible
-
KPC schrieb:
test Test;
Klappt aber immer noch @otze
Würde mich echt interessieren welchen Dtor er dann aufruft...
Oder hast du uns vergessen zu sagen dass du ein globales #define private public hast
-
Shade Of Mine schrieb:
Oder hast du uns vergessen zu sagen dass du ein globales #define private public hast
Ich finde das praktisch... Du nicht?;)