下面一段c++代码中的void f1(A m)是什么意思,尤其解释一下括号里的怎么运行的

#include<iostream>usingnamespacestd;classA{public:A(){x=0;cout<<"CA0"<<endl;}A(inti){... #include<iostream>
using namespace std;
class A{
public:
A(){x=0; cout<<"CA0"<<endl;}
A(int i){x=i; cout<<"CA1"<<endl;}
A(A &r){x=r.x; cout<<"CA2"<<endl;}
~A(){cout<<"DA"<<endl;}
private:
int x;
};
void f1(A m)
{}
void f2(A &m)
{}
int main()
{
A a;
A b(a);
f1(a);
f2(a);
}
展开
 我来答
haiyangfenghuo
2015-05-10 · TA获得超过2439个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:810万
展开全部
void f1(A m){}
这里f1是一个函数,函数的形参是类的对象,当f1函数被调用的时候,会调用拷贝构造函数,因为创建了类的临时对象。函数结束的时候,会调用析构函数,因为临时对象释放。
更多追问追答
追问
请问他把f1(a)中的a,传上去之后怎么调用拷贝函数啊??
追答
void f1(A m){}//这里是函数的定义,A m是函数的形参
f1(a)这里将a赋值给m就是在实参跟形参结合的时候调用了拷贝构造函数的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式