C++拷贝构造函数的参数能是其他的类的引用吗?

 我来答
microroom
科技发烧友

2020-06-23 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1577万
展开全部

拷贝构造函数只是一种叫法。如果一个构造函数的参数有且只有一个且这个参数是本类的引用(或const引用),那我们就叫这个构造函数为拷贝构造函数。

但既然构造函数可以重载,当然可以定义一个构造函数,其参数是其它类的引用,但我们一般不叫这个构造函数为拷贝构造函数。其实,所谓拷贝构造函数,就是个叫法,就如我们叫无参构造函数为默认构造函数一样。

下面给你个例子,供研究:

#include<iostream>

using namespace std;

class C

{

};

class A

{

public:

A()

{

cout<<"class A"<<endl;

}

// A(A a) //xxx

// {

//

// }

A(A &a)

{

cout<<"A(A &a)"<<endl;

}

A(const A &a)

{

cout<<"A(const A &a)"<<endl;

}

A(C &c)

{

cout<<"A(C &c)"<<endl;

}

A(const C &c)

{

cout<<"A(const C &c)"<<endl;

}

A(A &a,int i)

{

cout<<"A(A &a,int i)"<<endl;

}

A(const A &a,int i)

{

cout<<"A(const A &a,int i)"<<endl;

}

A(C &c,int i)

{

cout<<"A(C &c,int i)"<<endl;

}

A(const C &c,int i)

{

cout<<"A(const C &c,int i)"<<endl;

}

};

int main()

{

A a1;

A a2=a1;

const A a3;

A a4(a3);

C c1;

const C c2;

A a5(c1);

A a6(c2);

A a7(a1,1);

A a8(a3,1);

A a9(c1,1);

A a10(c2,1);

return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式