Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341876
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:03:48

#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) |
给主人留下些什么吧!~~