C++面向对象
2021/7/17 17:06:42
本文主要是介绍C++面向对象,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、对象的创建和销毁过程
1、对象的创建过程
a、给对象划分内存空间(栈、堆空间)
b、执行初始化列表
根据继承表顺序来调用父类的无参构造函数,也可以调用父类的有参构造
:父类名(参数)
根据成员的定义顺序来调用类类型成员的无参构造函数,也可以调用类类型的有参构造函数
:成员名(参数)
初始化其他成员
c、执行自己的构造函数、申请资源
2、对象的销毁过程 a、执行自己的析构函数、释放资源 b、根据类类型成员的定义顺序,逆序调用类类型成员的析构函数 c、根据继承表的顺序,逆序调用父类的析构函数 b、释放对象的内存
简答题:
1、一个空的结构体对象在C语言中和C++中分别占多少个字节?为什么?
在C语言中占0字节,在C++中占1字节
在C++的结构体中是可以定义成员函数的,并且有四个默认隐藏的成员函数(构造、析构、拷贝、赋值),当通过结构对象调用成员函数时,会把对象的地址自动传递给成员函数,这种机制就要求结构对象在内存中必须要有一席之地,所以当结构体中没有成员时,编译器也会让结构体至少拥有1字节
2、C语言中的const与C++的const有什么相同与不同?
相同点:C语言与C++中的const都是用来保护数据的
不同点:
a、C++中会优化const变量的取值过程,哪怕const变量的内存被强行修改也不会改变const变量的值,这样的处理机制安全性更强
b、在C++中const还可以修饰成员函数(给隐藏的this指针增加const属性),从而定义为常函数
这篇关于C++面向对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-12深入理解 ECMAScript 2024 新特性:Map.groupBy() 分组操作
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势