读书人

缺省拷贝构造函数的有关问题

发布时间: 2012-02-12 17:16:33 作者: rapoo

缺省拷贝构造函数的问题
class B
{
public:
B(){ Bvalue = 99;};

int Bvalue;
};
void main()
{
B b;
B c(b);
int aaa = b.Bvalue;
int ccc = c.Bvalue;
}
说明:在B c(b);这里.
我没有写上拷贝构造函数 B(const B & CB){ Bvalue = CB.Bvalue;}呀.
而书不是说如果有了一个构造函数,那么就不能在调用别的构造函数了???


[解决办法]
楼主看书不仔细,或者拿得是伪书。
如果有了一个构造函数,那么就不会自动生成默认构造函数,但是拷贝构造函数还是会自动生成的。
[解决办法]
如果不显式声明拷贝构造函数,编译器就会自动合成。
可以用
private:
B(B const&);
的方法禁用。

读书人网 >C++

热点推荐