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++面向对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding