pure virtual og deconstrutor problem
Davsjeg har en base klasse pluginBase og en klasse der nedarver fra denne dummyPlugin. De er erklæret ved:
class pluginBase : private museqBase {
public:
// pure functions
virtual ~pluginBase() = 0;
virtual void stopPlugin() = 0;
virtual bool createPluginGUI(pluginGUIParams GUIData) = 0;
virtual void setPluginRef(int ref) = 0;
....
};
class DummyPlugin : public pluginBase {
private:
...
public:
DummyPlugin();
~DummyPlugin();
void stopPlugin();
bool createPluginGUI(pluginGUIParams GUIData);
void setPluginRef(int ref);
...
};
PluginDataStruct::PluginDataStruct() {
DOLOG_CON("")
DummyPlugin* tmp = new DummyPlugin();
//TODO generere et unik id.
tmp->setPluginRef((int) pluginList.size()+1);
pluginList.push_back(tmp);
}
PluginDataStruct::~PluginDataStruct() {
for(unsigned int i=0;i<pluginList.size();i++) {
delete pluginList[i];
}
}
hvor pluginList er af typen vector<pluginBase*>
Dette kompliere fint, men linker brokker sig over at den ikke kan finde "virtual ~pluginBase() = 0;", men burden ikke kalde dummyPlugin deconstructor eller er der noget jeg har glemt mht. pure virtual funktioner??