C++ 类与对象(类的定义)
创始人
2025-05-29 08:46:26

目录

1.面向过程与面向对象初步认识

 2.类的引入

4.类的访问限定及封装

 5.类的作用域​编辑

6.类的实例化

 7.类对象模型

8.this指针 

C++的封装性


1.面向过程与面向对象初步认识

C:面向过程

C++:面向对象


 2.类的引入

C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。

比如: 之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;

现在以C++方式实现,会发现struct中也可以定义函数。

 C++可以用struct定义类,但更常用的是class

4.类的访问限定及封装

 

成员变量前面一般会+‘-’

例:


 


 5.类的作用域


6.类的实例化

例:


 7.类对象模型

 所以计算类的大小只是计算类对象的大小,并不包括类的函数的大小

在调用函数是,是在公共区域找,而不是在类对象中找

例:

 

给一个byte的大小,表面被实例化定义过。 

补充:


8.this指针 

 关键字:this

编译器完成的操作如下:(紫色的部分)

 (但是不能自己加哦)

但是可以自己显式地打印this

几个小问题(面试题)

1.this指针存在在哪里

栈上(因为它是隐含形参)

vs下面是通过ecx寄存器

2.空指针问题

 第二个运行崩溃是由于进行了解引用操作

 那下面这个呢?

为什么呢?

func并不在对象里面,那就在公共代码区去走,ptr真正的意义是传递给this

 有没有解引用的行为取决于右面的东西在不在对象里面,而不是用没用那个符号(->或者*符号等)


C++的封装性

对比C语言:

C++:

C语言:

相关内容

热门资讯

原创 印... 当地时间15日,美国总统川普宣布, “我与印尼备受尊敬的总统直接谈判,刚刚达成了一项对大家都很棒的协...
金盛贵金属:黄金投资有什么风险... 一、地缘冲突与政策博弈搅动黄金市场 2025 年的黄金市场正经历着 “过山车式” 震荡。世界黄金协会...
“要我就爱你哦!”科创债ETF... 首批科创债ETF今日重磅登陆沪深交易所! 作为资本市场“新生代宠儿”,这批产品从诞生就自带创新基因。...
原创 古... 各种事物在不断演变,历史长河中的交易方式和货币形式都经历了多次变化。从古代的“以物易物”,到如今的数...