#include "BaseClass.hpp"
class MyClass : public BaseClass
{
//Override base class's DoSomething
int DoSomething(){ printf( "DoSomething says: %d", 9 ); }
}Instance;
class BaseClass
{
public:
BaseClass();
static BaseClass*& GetInstance()
{
static BaseClass* s_t = 0; ;
return s_t;
}
protected:
virtual int DoSomething(){ return 0; };
private:
static void CallDoSomething();
}
BaseClass::BaseClass()
{
GetInstance() = this; //Setting the instance (potential problem?)
}
void BaseClass::CallDoSomething()
{
GetInstance()->DoSomething(); //Problem here at least.
}