do it this way..
// H - Interface
class ISampleClass {
public:
virtual ~ISampleClass() {}
static ISampleClass* getInstance();
virtual void DemoFunction1() = 0; //make everything pure virtual
virtual void DemoFunction2() = 0; // [OPTIONAL] Abstract function, so the complete class is abstract
private:
static ISampleClass *p;
};
// CPP - Implementation
ISampleClass* ISampleClass::p=0;
static ISampleClass* ISampleClass::getInstance();
{
if(!p)
p= new SampleClass;
return p;
}
// H - Implementation
class SampleClass
: public QObject,
public ISampleClass
{ Q_OBJECT
public:
virtual ~SampleClass() {}
void DemoFunction1();
void DemoFunction2();
};
// CPP - Implementation
}
void SampleClass::DemoFunction1() {
// Do Something
}
void SampleClass::DemoFunction2() {
// Do Something
}
//MAIN
int _tmain(int argc, _TCHAR* argv[])
{
ISampleClass* a= ISampleClass::getInstance();
a->DemoFunction1();
return 0;
}
// H - Interface
class ISampleClass {
public:
virtual ~ISampleClass() {}
static ISampleClass* getInstance();
virtual void DemoFunction1() = 0; //make everything pure virtual
virtual void DemoFunction2() = 0; // [OPTIONAL] Abstract function, so the complete class is abstract
private:
static ISampleClass *p;
};
// CPP - Implementation
ISampleClass* ISampleClass::p=0;
static ISampleClass* ISampleClass::getInstance();
{
if(!p)
p= new SampleClass;
return p;
}
// H - Implementation
class SampleClass : public QObject, public ISampleClass {
Q_OBJECT
public:
SampleClass(QObject *parent = 0);
virtual ~SampleClass() {}
void DemoFunction1();
void DemoFunction2();
};
// CPP - Implementation
SampleClass::SampleClass(QObject *parent) : QObject(parent) {
}
void SampleClass::DemoFunction1() {
// Do Something
}
void SampleClass::DemoFunction2() {
// Do Something
}
//MAIN
int _tmain(int argc, _TCHAR* argv[])
{
ISampleClass* a= ISampleClass::getInstance();
a->DemoFunction1();
return 0;
}
To copy to clipboard, switch view to plain text mode
Bookmarks