- 构造函数可以互调,但不能在函数体内,只能通过初始化列表的形式
- 构造函数中不要写业务逻辑
- 析构函数中不要
delete this
,这会导致析构递归,最终导致栈溢出
class Test{
public:
Test(int a, int b, int c){
_a = a;
_b = b;
_c = c;
}
// 正确
Test(int a, int b):Test(a, b, 100){
}
/*
// 错误
Test(int a, int b){
_a = a;
_b = b;
Test(a, b, 100); // 此处只是产生一个临时对象,马上又被释放掉了,没有任何意义
}
*/
int getA(){
return _a;
}
int getB(){
return _b;
}
int getC(){
return _c;
}
private:
int _a;
int _b;
int _c;
};
int main( )
{
Test t1(10, 20);
cout << t1.getA() << endl;
cout << t1.getB() << endl;
cout << t1.getC() << endl;
return 0;
}
输出:
Start
10
20
100
0
Finish