当前位置:网站首页>第二十四课 经典问题解析
第二十四课 经典问题解析
2022-04-23 11:55:00 【꧁༺夜༒雨༻꧂】
第二十四课 经典问题解析(构造析构顺序)
一、问题解析
-
问题:当程序中存在多个对象的时候,如何确定这些对象的析构顺序?
单个对象创建时构造函数的调用顺序
-
调用父类的构造过程
-
调用成员变量的构造函数(调用顺序与声明顺序相同)
一个类中包含其他类,调用顺序按照声明顺序来
-
调用类自身的构造函数
析构函数与对应的构造函数调用顺序相反
-
注意:以上三个并非独立的,而是按照这样的顺序调用的
对于栈对象和全局对象,类似于入栈与出栈的顺序,最后构造的对象最先析构
堆对象的析构发生在使用delete的时候,与delete的使用顺序相关
-
-
问题:const 关键字能否修饰类的对象?如果可以,有什么1特性?
const 关键字能够修饰对象
const 修饰的对象为只读对象
只读对象的成员变量不允许被改变
制度对象是编译阶段的概念,运行时无效
C++ 中的const成员函数
-
const对象只能调用 const 的成员函数
-
const 成员函数中只能调用 const 成员函数
-
const 成员函数中不能直接改写成员变量的值
-
const 成员函数定义:
type calssname::function(type p) const
注意:
const是在后面
类中的函数声明与史记函数定义中都必须带 const 关键字
-
-
问题:成员函数和成员变量都隶属于具体对象吗?
从面向对象角度
- 对象由属性(成员变量)和方法(成员函数)构成
从程序运行角度
- 对象由数据和函数构成,数据可以位于堆、栈、和全局数据区,函数只能位于代码段
所以是所有的对象共享一套成员函数,因为成员函数不能被删除
结论
- 每一个对象拥有自己的独立属性(成员变量)
- 所有的对象共享类的方法(成员函数)
- 方法能够直接访问对象的属性
- 方法中的隐藏参数 this 用于指代当前对象
成员函数只有一套,成员函数可以访问任何所属类里面的成员变量
二、小结
- 对象的析构顺序和构造顺序相反
- const 关键字能够修饰对象,得到只读对象
- 只读对象只能调用 const 成员函数
- 所有的对象共享类的成员函数
- 隐藏的 this 指针用于表示当前对象
版权声明
本文为[꧁༺夜༒雨༻꧂]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_34355238/article/details/124332232
边栏推荐
- Tan Xiang, CEO of Kechuang · Pera software: the essence of zero trust is digital security. To B should also deeply study the user's mind
- Maker education for primary and middle school students to learn in happiness
- Nacos Basics (5): getting started with Nacos configuration
- Chapter 5 optimizing queries using in memory expressions (IM 5.1)
- IDEA 中 .properties文件的中文显示乱码问题的解决办法
- 使用连接组优化连接 (IM 6)
- On lambda powertools typescript
- 云呐|固定资产盘点中,支持多种盘点方式(资产清查盘点)
- docker MySQL主从备份
- Sigmoid function of activation function
猜你喜欢

云呐|如何管理好公司的固定资产,固定资产管理怎么做

docker MySQL主从备份

全网最细的短网址系统设计与实战

How to count fixed assets and how to generate an asset count report with one click

Cognition and R & D technology of micro robot

C# F23. Stringsimilarity Library: String repeatability, text similarity, anti plagiarism

配电房远程综合监控系统在10kV预制舱项目中的应用

Laravel绑定钉钉群警报(php)

Windows11 安装MySQL服务 提示:Install/Remove of the Service Denied

同态加密技术学习
随机推荐
Resolution due to AMD not found_ ags_ x64. DLL, unable to continue code execution. Reinstallation of the program may solve this problem, Forza horizon 5
IM表达式如何工作(5.3)
怎么进行固定资产盘点,资产盘点报告如何一键生成
Laravel绑定钉钉群警报(php)
A detailed explanation of head pose estimation [collection of good articles]
数据库如何填充IM表达式(IM 5.4)
Nacos Basics (5): getting started with Nacos configuration
Yunna | how to manage the company's fixed assets and how to manage fixed assets
Nacos Foundation (8): login management
Interpreting the art created by robots
The listing of saiweidian Technology Innovation Board broke: a decrease of 26% and the market value of the company was 4.4 billion
什么是网关
Force buckle - 1137 Nth teponacci number
IDEA 代码质量规范插件SonarLint
Castle.DynamicProxy实现事务单元控制
云呐|固定资产盘点中,支持多种盘点方式(资产清查盘点)
tensorflow常用的函数
Nacos Foundation (9): Nacos configuration management from single architecture to microservices
How the database fills in IM expressions (IM 5.4)
IDEA 中 .properties文件的中文显示乱码问题的解决办法