#include
class confusable {
private:
int x,y;
public:
confusable(int x1,int y1){
x=x1; y=x1;
cout<<"In construct !\n";
}
confusable(confusable & obj){
*this=obj;
cout<<"In copy construct !\n";
}
// 下面的析构函数 有与没有 令人奇怪 !!!
//~confusable( ){ cout<<"deconstruct ... \n"; }
};
void main( )
{
{ // 为了便于观察,故意将对象数组设置为局部变量
confusable confuse[2]={ confusable(1,1),confusable(2,2) };
}
}
/*
1. 如果不定义析构函数,运行结果如下:
In construct !
In copy construct !
In construct !
In copy construct !
2. 定义析构函数,运行结果如下:
In construct !
In construct !
deconstruct ...
deconstruct ...
问题:第一次运行调用了拷贝构造函数,而第二次运行就不调用拷贝构造函数? 为什么?
*/
--------------------next---------------------
阅读(978) | 评论(0) | 转发(0) |