#include <stdio.h>

class CTest


{
public:

CTest()
{
CTest(0);
//已經(jīng)調(diào)用析構(gòu)函數(shù)
printf("CTest()\r\n");
}

CTest(int i)
{
CTest(i, 0);
//已經(jīng)調(diào)用析構(gòu)函數(shù)
printf("CTest(%d)\r\n", i);
}

CTest(int i, int j)
{
printf("CTest(%d, %d)\r\n", i, j);
}

virtual ~CTest()
{
m_CTestCount++;
printf(" ~CTest() m_CTestCount = %d\r\n", m_CTestCount);
}
static int m_CTestCount;
};
int CTest::m_CTestCount = 0;
int main()


{
CTest cT;
printf("main()\r\n");
//調(diào)用析構(gòu)函數(shù)
return 0;
}
調(diào)用CTest()時會產(chǎn)生一個臨時變量。
如果想在構(gòu)造函數(shù)間調(diào)用要用一下形式:
class CTest2


{
public:
CTest2()

{
a=0;
b=0;
}
CTest2(int _a)

{
this->CTest2::CTest2();
a = _a;
printf("in CTest2(int a) and a=%d,b=%d\n",a,b);
}
~CTest2()

{
printf("in destrcutor and c=%d\n",c);
}
int a;
int b;
int static c;
};
注意 this->CTest2::CTest();
建議:
因?yàn)闃?gòu)造函數(shù)的特別,我們應(yīng)該盡量避免構(gòu)造函數(shù)間的調(diào)用
可以采用狗仔函數(shù)默認(rèn)值的方式
以上為例:
CTest2(int _a=0,int_b=0);
這樣就可以省去CTest2()這個默認(rèn)構(gòu)造函數(shù)。