一、成员变量和成员函数分开存储
再C++中,类内得成员变量和成员函数分开存储只有非静态成员变量才属于类得对象上
//空对象占用内存空间为:1
//C++编译器会给每个空对象也分配一个字节空间,是为了区分对象占内存得位置
//每个空对象也应该有一个独一无二得内存地址
二、this指针
每一个非静态成员只会诞生一份函数实例,也就是说多个同类型得对象会共用一块代码
C++通过提供特殊得对象指针,this指针解决上述问题
this指针指向被调用得成员函数所属得对象
this指针得用途:
当形参和成员变量同名是可以用this区分
在类得非静态成员函数中返回对象本身可用return *this
三、空指针访问成员函数
C++中空指针也是可以调用成员函数得但是也要注意有没有用到this指针
如果用到this指针,需要确保代码健壮性可用下列方法解决:
if(this==NULL)
{
return;
}
四、const修饰函数
常函数:
成员函数加const后我们称为这个函数为常函数
常函数内不可以修改成员属性
成员属性声明时加入关键字mutable在常翰苏中依然可以修改
常对象:
声明对象钱加入const称该对象为常对象
常对象之恩调用常函数
//this指针的本质是指针常量,指针的指向是不可以修改的
//想要修改,前加mutable int m_B;(不管在常函数还是常对象,加入了就都可以修改)
五、友元
在程序里有些私有属性也想让类外特殊的函数或者进行访问就需要用到友元的技术
友元的目的就是让一个个函数或者类访问一个类中私有成员
友元的关键字为friend
友元的三种实现:
全局函数做友元——》在类用friend申明全局函数
类做友元
成员函数做友元