一个对象可以被多次构造么?

yfwill 2005-01-10 07:47:22
#include <iostream>
using namespace std;


class CCP{
public:
int i;
CCP( int x )
{
i = x;
cout << "in CCP(int)" << endl;
}
CCP( const CCP& xcp )
{
i = xcp.i;
cout << "in CCP(const CCP&)" << endl;
}
};

int main()
{
CCP cp1 = 1;
CCP cp2 = cp1;
CCP cp3(1);
cp3 = 2;
//是被直接用CCP(int)构造 ,还是cp3 = CCP(2),然后进行位拷贝
//cp3已经被构造一次了,一个对象可以多次构造?
cin.get();
return 0;
}
...全文
224 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
snow810211 2005-01-10
  • 打赏
  • 举报
回复
CCP cp1 = 1;//构造
CCP cp2 = cp1;//拷贝构造
CCP cp3(1);//构造
cp3 = 2;//赋值
oyljerry 2005-01-10
  • 打赏
  • 举报
回复
拷贝
自己定义一个拷贝构造函数
goodluckyxl 2005-01-10
  • 打赏
  • 举报
回复
= 你不自己实现
就象默认构造函数一样自动生成
进行bit copy
nol 2005-01-10
  • 打赏
  • 举报
回复
这不是多次构造,构造只是一次,cp3=???是赋值
idau7 2005-01-10
  • 打赏
  • 举报
回复
对象是不能被多次构造的.
但是可以用不同的构造函数来构造.
simpleyu 2005-01-10
  • 打赏
  • 举报
回复
cp3 = 2;
cp3是拷贝,但是在拷贝之前,先要以2为初值构造一个临时对象。然后在这个临时对象和cp3之间完成拷贝。
dongyuanzhang 2005-01-10
  • 打赏
  • 举报
回复
cp3 = 2;//赋值
lovefly_fanny 2005-01-10
  • 打赏
  • 举报
回复
CCP cp1 = 1;//构造
CCP cp2 = cp1;//拷贝构造
CCP cp3(1);//构造
cp3 = 2;//赋值
junnyfeng 2005-01-10
  • 打赏
  • 举报
回复
是拷贝
wasoxi 2005-01-10
  • 打赏
  • 举报
回复
在这cp3不是构造,你定义个operator = 就能更清楚点了
tip9914 2005-01-10
  • 打赏
  • 举报
回复
不就和int a=4;
int b=3;
int b=a;
一样的么
runall 2005-01-10
  • 打赏
  • 举报
回复
当然不是多次构造,而是拷贝

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧