QT学习总结
1. 单例写法及类中有私有类写法
ctest.h
class CTestPrivate;
class CTest
{
CTest();
~CTest();
public:
static CTest *instance();
private:
CTestPrivate *d;
friend class CTestPrivate;
};
ctest.cpp
class CTestPrivate
{
public:
CTestPrivate(CTest *qq): q(qq) {}
CTest *q;
};
CTest::CTest(): d(new CTestPrivate(this))
{
}
CTest::~CTest()
{
delete d;
}
CTest *CTest::instance()
{
static CTest *obj = nullptr;
if (!obj)obj = new CTest();
return obj;
}
单例用于该类只有一个实例的场合,带私有类的类应用于封装第三方库时利于二进制兼容。