文章标题

来源:互联网 发布:墨守成规淘宝店铺 编辑:程序博客网 时间:2024/06/16 00:35

/*********************************************************
时间:2015年4月1日
首先学习//A(A other){value =other.value}的错误性。
原因是A的复制构造函数是不能带有A类的形参
由于other是传值参数,我们把形参复制到实参会调用复制构造函数。
因此如果允许复制构造函数传值,就会在复制构造函数内调用复制构造函数,
就会永无休止的递归调用从而导致栈溢出。
因此C++标准不允许复制构造函数传值参数
要解决这一问题就是把传值参数改成常量引用。
**********************************************************/

#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();}
0 0
原创粉丝点击