类和对象(2)
静态成员变量代码体现
静态成员函数 代码体现
成员变量和成员函数是分开存储,在c++中只有非静态成员变量菜属于类的对象上。也就是说静态成员变量,静态成员函数,非静态成员函数的存储都不在类上。可通过sizeof()体现。
this指针
用途一,区分形成和成员变量
用途2,返回对象本身
空指针访问成员函数
const修饰成员函数
原理
常对象
友元
全局函数做友元
方法:将全局函数的定义复制到类中且前面加上friend
类做友元
将要做友元的类的定义复制一份到要访问的类的开头并且前面加friend
成员函数做友元
运算符重载
1,加号运算符重载:实现两个自定义类型相加的运算
方法1:在类内写一个成员函数,并以operator+当函数名
方法2:全局函数
2,左移运算符重载:可以输出自定义数据类型
只能用全局函数重载左移运算符
3,递增运算符重载:实现自己的整型数据
总结:前置递增返回引用,后置递增返回值
4赋值运算符重载:如果类中有属性指向堆区浅拷贝会使堆区空间被释放两次导致程序崩溃,固要用深拷贝
5,关系运算符重载:可以让两个自定义类型对象进行对比操作
6函数调用运算符重载