当前位置:网站首页>第二十四课 经典问题解析
第二十四课 经典问题解析
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
边栏推荐
- Relu function of activation function
- Study notes of C [8] SQL [1]
- 用户接口和IM表达式(IM 5.6)
- Chapter 5 optimizing queries using in memory expressions (IM 5.1)
- 怎么进行固定资产盘点,资产盘点报告如何一键生成
- Who said you should know PS? This open-source artifact can also be pulled in batch, and the effect is outstanding!
- NativeForMySQL 连接MySQL8 提示:1251- Client does not support authentication protocol
- Nacos Foundation (9): Nacos configuration management from single architecture to microservices
- 2022 love analysis · panoramic report of industrial Internet manufacturers
- 第四章 为IM 启用填充对象之为IM列存储启用ADO(IM 4.8)
猜你喜欢
1. Construction of electron development environment
力扣-1137.第N个泰波那契数
激活函数之relu函数
积极参与中学机器人竞赛的意义
QT 64 bit static version display gif
VMware virtual machines export hard disk vmdk files using esxi
Maker education for primary and middle school students to learn in happiness
Nacos Basics (5): getting started with Nacos configuration
Relu function of activation function
On the integration of steam education in early childhood education
随机推荐
MySQL 的主从复制配置
Nacos Foundation (7): Configuration Management
PSCP 基本使用
Nacos Foundation (6): Nacos configuration management model
MQ的了解
How imeu is associated with imcu (IM 5.5)
数据库如何填充IM表达式(IM 5.4)
docker MySQL主从备份
Use kettle to copy records to and get records from results
Win10 splash screen after startup
1. Construction of electron development environment
kettle复制记录到结果和从结果获取记录使用
Next.js 静态数据生成以及服务端渲染的方式
云呐|固定资产盘点中,支持多种盘点方式(资产清查盘点)
Interpretation of biological recognition in robot programming course
Interpreting the art created by robots
MQ在laravel中简单使用
Application of remote integrated monitoring system in power distribution room in 10kV prefabricated cabin project
ImportError: libX11.so.6: cannot open shared object file: No such file or directory
Exploring the equipment and teaching of robot education