C++中拷贝构造函数

本文详细介绍了C++中拷贝构造函数的概念与实现方式。通过具体示例代码演示了如何自定义拷贝构造函数,并解释了其在对象拷贝过程中的作用。

拷贝构造函数

#include <iostream>
using namespace std;

class CExample
{
private:
    int a;
public:
    CExample(int b)
    {   a=b;
    }
    void Show ()
    {   cout<<"Object's inner private a ="<<a<<endl;
    }
};

int main()
{   CExample A(100);
    CExample B=A;
    B.Show ();
    return 0;
}

#include <iostream>
using namespace std;

class CExample 
{
private:
    int a;
public:
    CExample(int b)
    { a=b;}
    
    CExample(const CExample& C)
    {
        a=C.a;
    }
    void Show ()
    {
        cout<<a<<endl;
    }
};

int main()
{
    CExample A(100);
    CExample B=A;
    B.Show ();
    return 0;
}

CExample(const CExample& C)就是我们自定义的拷贝构造函数。

可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它的唯一的一个参数是本类型的一个const类型的引用变量,该参数是不可变的。例如:类X的拷贝构造函数的形式为X(const X& x)。

当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。

转载于:https://my.oschina.net/ajian2014/blog/264343

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值