C++类的用法

#include<iostream>usingnamespacestd;classA{intn;public:A(){};A(inta){n=a;cout<<"A(int... #include<iostream>
using namespace std;
class A{
int n;
public:
A(){};
A(int a) {n=a; cout<<"A(int)\n";}
A(const A& rhs){ n=rhs.n; cout<<"A(const A&rhs)\n";}
A operator+(const A& rhs)
{ cout<<"+\n"; return A(n+rhs.n);}
};
int main()
{
A a=A(1);
A b=a+1;
}
为什么A a=A(1) 没有调用copy构造函数啊
同理A b=a+1也没有
展开
 我来答
子非退而结网
2014-12-19 · TA获得超过407个赞
知道小有建树答主
回答量:335
采纳率:68%
帮助的人:229万
展开全部
拷贝构造函数的参数是本类的对象,如:
A a=A(1)
A b(a); //这个才调用拷贝构造函数,参数是本类型对象,如A a
追问
A a=A(1)没有调用
A b(1);
A a=b;
也会调用
追答
刚查了一些资料:
在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”):
1) 一个对象作为函数参数,以值传递的方式传入函数体;
2) 一个对象作为函数返回值,以值传递的方式从函数返回;
3) 一个对象用于给另外一个对象进行初始化(常称为复制初始化);

A a=b; //是第3中情况,一个对象用于给另外一个对象进行初始化(常称为复制初始化)

拷贝构造函数:
http://baike.so.com/doc/498773.html
不要意思啊!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式