我是靠谱客的博主 清爽树叶,最近开发中收集的这篇文章主要介绍类与对象2,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.类的实例化
用类类型创建对象的过程,称为类的实例化。
(1)类知识一个模型一样的东西,限定了类有哪些成员,定义出一个并没有分配实际的内存空间来存储它;
(2)一个类可以实例化出多个对象,实例化出的对象,占用实际的物理空间,存储类成员变量;
(3)做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出粗腰什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。
2.类对象模型
一个类的大小,实际就是该类中“成员变量”之和,也要进行内存对齐,注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类。
结构体内存对齐规则:
(1)第一个成员在与结构体偏移量为0的地址处;
(2)其他成员变量要对齐到某个数字(对齐数)的整数倍的地址;
注意:对齐数=编译器默认的一个对齐数与该成员大小的较小值。VS中默认的对齐数为8.
(3)结构体总大小为:最大对齐数(所有变量类型最大者与默认对齐参数取最小)的整数倍;
(4)如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。
3.this指针
(1)C++中通过引入this指针解决该问题,即:C++编译器给每个“非静态的成员函数”增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针取访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。
(2)this指针的特性
this指针的类型:类类型* const;
只能在“成员函数”的内部使用;
this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参,所以对象中不存储this指针;
this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户传递。

最后

以上就是清爽树叶为你收集整理的类与对象2的全部内容,希望文章能够帮你解决类与对象2所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部