class STest{
public:
static STest *GetInstance()
{
return (new STest());
}
private:
STest(){
}
STest(const STest &){
}
STest &operator = (const STest &){
}
};
void test()
{
Test test;
Test *n_test = new Test();
Test c(test);
Test *d = new Test(test);
Test e = test;
}
void test_pub()
{
PTest ptest;
PTest *n_ptest = new PTest();
PTest c(PTest);
PTest *d = new PTest(ptest);
PTest e = ptest;
}
void test_pri()
{
//STest stest;
//STest *n_stest = new STest();
//STest c(STest);
//STest *d = new STest(stest);
//STest e = stest;
STest *stest = STest::GetInstance();
}
int main(int argc, char *argv[])
{
test();
test_pub();
return 0;
}
构造函数私有,一般是构建单例模式用。
用new与不用new,与构造函数的实现无关,只是存储位置不同。new存堆中,不用new存栈中。
private 只能自己访问,这样的情况下,其他类不能直接调用该类生成新的对象,也就避免了同一个类被反复创建的情况,这种情况下,该类只有一个对象实例
原文链接:https://blog.csdn.net/weixin_39590058/article/details/88234192
原文链接:https://blog.csdn.net/u010029439/article/details/79439332