读书人

难道可以不定义复制构造函数吗?该怎么

发布时间: 2012-03-07 09:13:51 作者: rapoo

难道可以不定义复制构造函数吗?
#include <stdio.h>
class A
{
private:
int num;
public:
A (int b)
{
num=b;
}
void shuchu(void)
{
printf( "%d ",num);
}
};
void main()
{
A A2(7);
A A1=A2;

A1.shuchu();
}
我想问一下,这样可以直接用一个对象来初始化另一个对象。我觉得可以不用定义复制构造函数了,这样对吗?

[解决办法]
你没定义的话, 编译器会自动帮你生成一个缺省的复制函数
[解决办法]
对于你这个简单的类来说,的确可以这样,但是在某些情况下(类比较复杂),你这种方式是不良的,甚至有可能给程序带来危险

楼主不妨去看看 C++里谈到的 浅拷贝与深度拷贝 这方面的介绍里一定会说明你的这种代码什么时候是有问题的。

读书人网 >C++

热点推荐