C++中类(class)的概念和基本用法
创作时间:
作者:
@小白创作中心
C++中类(class)的概念和基本用法
引用
CSDN
1.
https://blog.csdn.net/2301_79959126/article/details/137147854
C++中的类(class)
1. 类(class)的基本概念和用法
- 对象:通过类,我们可以自定义变量(与结构体相似)。由类定义出来的变量又称为类的实例,也就是我们所说的对象。
- 内存分配:对象所占用的内存空间的大小,等于所有成员变量的大小之和。
- 对象间的运算:和结构变量一样,对象之间可以用”=”进行赋值(复制构造函数),但在未经重载的情况下不可以用”==”,”>”,”<”等运算符进行比较。(重载就是重新定义这些运算符,利用operaor操作)
- 使用类的成员变量和成员函数:
- Way 1: 对象名.成员名
- Way 2:指针->成员名
- Way3:引用名.成员名
2. 类成员的可访问范围
- private:私有成员,只能在成员函数内访问(只可以通过成员函数进行调用)
- public:公有成员,可以在任何地方访问(可被成员函数调用,也可被直接调用)
- protected:保护成员
注:如果某个成员前面没有关键字,则会被缺省地认为是private(与struct结构体的唯一区别就在于struct默认是public)
3. 成员函数的重载及参数缺省
- 成员函数也可以重载(编译器会自动匹配参数类型对应的成员函数)
- 成员函数可以带缺省参数(缺省右侧参数,需要初始赋值)
4. 构造函数
成员函数的一种:名字与类名相同,可以有参数(传入参数,以给成员变量赋值),不能有返回值 (不能写return,void也不行)
作用: 对对象进行初始化,如给成员变量赋初值
注意事项:
- (1)如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数。默认构造函数无参数,不做任何操作。(默认生成“空”的类对象)
- (2)如果定义了构造函数,则编译器不生成默认的无参数的构造函数。
- (3)对象一旦生成,就再也不能在其上执行构造函数(只在函数初始化时调用构造函数)
- (4)一个类可以有多个构造函数(可以重载,以配合不同类型的初始化类对象)
构造函数在数组中的作用
5. 复制构造函数
参数:只有一个参数, 即对同类对象的引用。
定义形式:形如 X::X(X &)或X::X(const X &), 二者选一,后者能以常量对象作为参数
作用:进行类的对象的复制操作(注意浅拷贝和深拷贝两种情况)
注意事项:
- (1)如果没有定义复制构造函数,那么编译器生成默认复制构造函数。默认的复制构造函数完成复制功能。
- (2)如果定义的自己的复制构造函数,则默认的复制构造函数不存在。
- (3)不允许有形如 X::X(X)的构造函数。
自定义复制构造函数:
这是一种深拷贝,因为只是单纯地在进行赋值操作,而没有传递指针(默认复制函数是直接“=”赋值,如果原成员变量为指针,会导致地址的传递,从而实现浅拷贝)
复制构造函数起作用的三种情况:
- 当用一个对象去初始化同类的另一个对象时
- 当函数有一个参数是类的对象,该函数被调用时,会产生一个通过拷贝得到的形参
(建议使用常量引用参数 如 const Complex& c,利用引用&可以防止复制构造函数调用,减少开销;且const保证了实参c的值在函数中不被改变。)
(3)当函数返回值为类的对象时,则函数返回时会调用类的复制函数
6. 转换构造函数
定义转换构造函数的目的时实现类型的自动转换
这里实际上是把9转换成了一个临时的Complex对象。
7. 析构函数
名字与类名相同,在前面加‘~’,没有参数和返回值。
析构函数对象消亡时即自动被调用。可以定义析构函数来在对象消亡前做善后工作,
比如释放分配的空间等。(当你new出一段新的内存空间,需特别关注析构函数,需把主动生成的那部分内存给delete)
注意事项:
- (1)如果定义类时没写析构函数,则编译器生成缺省析构函数。缺省析构函数什么也不做,只是把原先创建的内存消除。
- (2)如果定义了析构函数,则编译器不生成缺省析构函数。
- (3)一个类最多只能有一个析构函数。
- (4)当你创建对象数组时,对象数组生命期结束的时候,对象数组的每个元素的析构函数都会被调用。
- (5)当你在函数中传入类对象参量时,参数对象消亡也会导致析构函数被调用。
- (6)当你把类对象作为函数返回值时,这个返回值被使用后也会调用析构函数。
热门推荐
秋冬养生神器:白菊花的多重功效与搭配指南
德尔菲法与风险矩阵法:公共卫生风险评估的互补之道
从红烧到清蒸:10种鱼肉家常菜制作详解
松鼠鱼:外酥里嫩的江南名菜,酸甜酱汁是灵魂
普洱茶黄粒真相:茶多酚氧化产物,反映陈化程度
腌制咸鱼完整指南:选大青鱼中段,4天腌制7天晾晒
哈密:新省道开启丝路探秘新旅程
哈密市新开通省道,东疆旅游打卡胜地
冬季蛋鸡养殖注意事项
骨密度低是骨质疏松预警,五种常见钙片功效详解

钙片不只是补钙:六大功效及科学服用指南
无机钙还是有机钙?老年人补钙这样选
车载充气泵故障排除指南:从电源到管路的全面检查
从《甄嬛传》三大“战队”看职场管理风格
甄嬛传里的职场学:从新人到管理层的进阶之路
蜈支洲岛潜水:从入门到进阶,玩转“中国的马尔代夫”
蜈支洲岛:海底世界的奇幻之旅与生态保护典范
蜈支洲岛最新必玩项目大揭秘:从直升机环岛到火烈鸟餐厅
小鼠行为学实验揭示新疗法潜力
华龙证券投教基地开年首场反诈宣讲惠及30余名群众
沪苏湖高铁带你打卡南浔古镇的建筑与园林
西安交大&西工大联手破解压电材料难题
《甄嬛传》13年再聚首,揭秘这部经典剧集的成功密码
乾隆御笔春联里的皇家年俗:红白底色的讲究
《多想和你再见一面》里的澳门文化符号
专本套读:5种方式助你快速提升学历,三年拿双证
戈特曼“稳固关系之屋理论”:构建持久爱情的三大基石
家庭用倾听,职场靠诚信:信任建立全攻略
春钓黑坑滑口鲤鱼,这些实战技巧助你满载而归
长期婚姻如何保持亲密?专家详解六大秘诀