C++ 拷贝构造函数、浅拷贝、深拷贝、内联函数

本文详细解析了拷贝构造函数的正确用法,强调了参数必须是const引用的原因,并通过示例说明了深拷贝和浅拷贝的区别及其实现方式。此外还介绍了const函数和成员函数的一些使用限制。

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

  • 拷贝构造函数的参数必须是该类型的const 引用,如果是复制的话,则会出现死循环。正确的例子:

class Test
{
public:
    class(int a)
    {
        m = a;
    }
    class(const Test& test);
    {
        m = test.m;//此处类可以访问私有成员m
    }
    ~class();
private:
    int m;
};
  •  深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。

深拷贝和浅拷贝的定义可以简单理解成:如果一个类拥有资源(堆,或者是其它系统资源),当这个类的对象发生复制过程的时候,这个过程就可以叫做深拷贝,反之对象存在资源,但复制过程并未复制资源的情况视为浅拷贝。

浅拷贝资源后在释放资源的时候会产生资源归属不清的情况导致程序运行出错。

  • 在类成员函数的声明和定义中,const的函数不能对其数据成员进行修改操作。const的对象,不能引用非const的成员函数。

  • 在.h文件中,对函数进行定义必须要使用内联函数。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值