欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > C++:拷贝构造

C++:拷贝构造

2024/10/22 17:10:53 来源:https://blog.csdn.net/2301_80311224/article/details/143080437  浏览:    关键词:C++:拷贝构造

拷贝构造函数是参数类型为本类的引用的构造函数,它也叫复制构造函数,它只有一个参数。当没有写拷贝构造函数时,会有一个默认的拷贝构造函数。

class AA
{
public:AA(AA& ra){}}

那么什么时候会调用此函数呢?有以下三种情况

1,当一个对象去初始化另一个对象时,会执行拷贝构造。

如:

#include<iostream>
using namespace std;class AA
{
public:int a;
public:AA(){a = 100;}};
int main()
{AA a;AA b(a);   //会执行拷贝构造AA c=a;    //会执行拷贝构造AA d;d=a;       //会赋值,不会执行拷贝构造return 0;
}

2,函数的参数是类的对象,那么当函数被调用时,作为参数类对象的拷贝构造函数将被调用。

如:

#include<iostream>
using namespace std;class AA
{
public:int N;
public:AA(int n){N = n;}};void f(AA a)
{}
int main()
{AA a;f(a);return 0;
}

3,如果函数返回值是类的对象,则函数返回时,返回类对象的拷贝构造函数会被调用。

如:

#include<iostream>
using namespace std;class AA
{
public:int N;
public:AA(int n){N = n;}};AA f()
{AA a(100);return a;
}int main()
{AA a;cout<<f().N<<endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com