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存栈中。