C++常见知识点复习-赋值构造函数

本文探讨了C++中赋值构造函数的重要性和使用注意事项,包括为何参数必须为const引用以避免无限循环,以及如何实现复制构造函数。接着,解释了赋值运算符的实现细节,如采用const引用参数、返回对象引用以支持连续赋值,以及检查并处理自我赋值的情况。最后,介绍了异常安全性,确保在异常发生时不泄漏资源且不破坏数据,通过使用临时对象交换策略来处理可能的异常情况。
摘要由CSDN通过智能技术生成


(1) 一个空类或者空类对象的大小?

由于对象在内存中必须占有一定的空间,因此,即使类是空的,这个类的对象也要占用一定的空间。VS和G++中空类的大小都是1。

(2) 在空类中添加构造函数和析构函数,这个类对象的大小?

这里要明确的是:一个类对象在内存中包含哪些成员?在C++中,类对象中只有非静态的数据成员和虚表指针(如果有的话)。也就是说,虽然函数好像包含在对象中,但是,经过编译之后,类的函数就会编译成像C语言一样的全局函数,只是通过特定的对象进行调用。因此,在空类中添加函数并不会引起类对象大小的变化。

(3) 复制构造函数

书中给了下面这样的代码:

class A {
private:
    int value;

public:
    A(int n) { value = n; }
    A(A other) { value = other.value; }

    void Print() { std::cout << value << std::endl; }
};

int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值