分类的简化版本

本文深入探讨了复制构造函数与赋值操作符的原理、用法及其相似之处,通过一个简化类的示例,详细解释了如何在C++中实现这两个关键概念,并强调了它们在对象复制过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般有三种情况下,复制构造函数是所谓的而不是赋值操作符:

当实例化一个对象并初始化它与另一个对象的值(如上面的例子)。

当传递一个对象的值。

一个对象是当函数返回的值。

在这些情况下,一个新的变量需要被创造之前的值可以被复制-因此使用复制构造函数。

因为复制构造函数和赋值操作符基本上做同样的工作(他们只是被称为在不同的情况下),代码来实现他们所需要的几乎是相同的。

一个重载的赋值操作符和复制构造函数,例

现在你明白两者之间的复制构造函数和赋值操作符,看看它们是如何实现的。简单的类,如我们的分类,它是非常简单的。

这里是我们的分类的简化版本:

1
2
3
4
5
6
7
8
9
10
class Cents
{
private:
    int m_nCents;
public:
    Cents(int nCents=0)
    {
        m_nCents = nCents;
    }
};

首先,让我们添加复制构造函数。思考这个逻辑,因为它是一个构造函数,它需要被命名为仙。因为它需要复制一个已经存在的对象,它需要一个美分对象作为参数。最后,因为它是一个构造函数,它没有返回类型。所有这些加在一起,这是我们的类的复制构造函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Cents
{
private:
    int m_nCents;
public:
    Cents(int nCents=0)
    {
        m_nCents = nCents;
    }
 
    // Copy constructor
    Cents(const Cents &cSource)
    {
        m_nCents = cSource.m_nCents;
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值