类设计知识总结篇

本文总结了C++类设计中的特殊成员函数,包括默认构造函数、析构函数、复制构造函数和赋值运算符。探讨了它们的功能、使用场景以及在派生类中的行为。此外,还讨论了其他类方法知识点,如构造函数和析构函数不可继承、对象作为参数和返回值的最佳实践、const的使用以及公有继承中的赋值运算符。最后提到了私有成员、保护成员的作用,虚函数的意义,以及友元函数的相关概念。
摘要由CSDN通过智能技术生成

一、编译器生成的特殊成员函数
1、默认构造函数
没有定义构造函数下才有该函数,一旦定义了构造函数,编译器就不会为我们提供默认无参的构造函数,但自己可以定义无参(参数都带有默认值)的构造函数,对于派生类的默认构造函数,函数内部将先调用基类的默认构造函数。
设计初衷:创建对象时保证成员获得内存空间并得到正确初值,特别是成员为指针,就涉及到在构造函数利用new动态分配内存。
2、默认析构函数:当调用派生类对象的析构函数时,先释放派生类对象所占内存空间,再调用基类析构函数,释放派生类对象中所包含的基类对象的内存空间。
3、复制构造函数(参数是同类对象的引用)
功能:逐成员复制,当成员是类对象时,将调用该成员的对应类型的复制构造函数。
何时使用复制构造函数?
值传递类对象
按值返回类对象
生成临时对象
新对象初始化为同类对象
4、赋值运算符函数
与复制构造函数的区别:一个是初始化新对象,一个是修改现有对象的值。
逐成员赋值,当成员是类对象将调用该类的赋值运算符函数。
默认的赋值运算符参数是同类型的,若赋值对象与被赋值对象类型不同,可以重载赋值运算符函数。
二、其他类方法常见知识点
在派生关系中,构造函数不能被继承,因为继承指的是派生类对象可以调用基类方法,而构造函数是在创建对象,没有对象何谈调用?!同理,析构函数也不能被继承,主要用途释放在构造函数中申请的动态空间,涉及new,就要考虑显示定义析析构函数,通常基类的析构函数声明为虚函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值