c++--对象模型和this指针
成员变量和成员函数分开存储
类内的成员变量和成员函数分开存储
只有非静态成员变量才属于类的对象上,静态成员变量以及函数都不属于对象
空对象占用内存空间为1
c++编译器会给每隔空对象也分配一个字节空间,是为了区分空对象占内存的位置
每个空对象也应该有一个独一无二的内存地址
this指针的概念
每个非静态成员函数只会诞生一份函数实例,多个同类型的对象会共用一块代码,this指针指向被调用的成员函数所属的对象
this指针是隐含每一个非静态成员函数内的一种指针
this指针不需要定义,直接使用即可
this指针的用途
当形参和成员变量同名时,可以用this指针来区分
在类的非静态成员函数中返回对象本身,可使用return *this
const 修饰成员函数
常函数
成员函数后加const后称这个函数为常函数
常函数内不可以修改成员属性
成员属性声明加关键字mutable后,在常函数中依然可以修改
常对象
声明对象前加const称该对象为常对象
常对象只能调用常函数
浙公网安备 33010602011771号