您的位置:首页 > 其它

文章标题

2015-11-26 20:13 295 查看
/[b]*********************************************************[/b]

时间:2015年4月1日

首先学习//A(A other){value =other.value}的错误性。

原因是A的复制构造函数是不能带有A类的形参

由于other是传值参数,我们把形参复制到实参会调用复制构造函数。

因此如果允许复制构造函数传值,就会在复制构造函数内调用复制构造函数,

就会永无休止的递归调用从而导致栈溢出。

因此C++标准不允许复制构造函数传值参数

要解决这一问题就是把传值参数改成常量引用。

[b]**********************************************************[/b]/

#include <iostream>
**class A{
private:
int value;
public:
A(int n){value = n;}
A(const A& other){value =other.value;}
void Print(){std::cout<<value<<std::endl;}
}
int main(){
A a=10;
A b= a;
b.Print();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: