静态成员变量和成员函数
类的静态成员,属于类,也属于对象,但终归属于类。
静态成员变量
总结:
静态成员函数
静态成员占大小
从上面可得出,
求类的大小,static成员不包含在内
C++类对象中的成员变量和成员函数是分开存储的
成员变量:
普通成员变量:存储于对象中,与struct变量有相同的内存布局和字节对齐方式
静态成员变量:存储于全局数据区中
成员函数:存储于代码段中。
this指针
int getK( ) const //成员函数尾部出现const,修饰的是this指针
{
}
全局函数与成员函数
1、把全局函数转化成成员函数,通过this指针隐藏左操作数
Test add(Test &t1, Test &t2) ===》Test add(Test &t2)
2、把成员函数转换成全局函数,多了一个参数
void printAB() ===》void printAB(Test *pthis)
3、函数返回元素和返回引用
接上面部分代码
int getA(){
return this->a;
}
int getB(){
return this->b;
}
//全局函数 提供两个Test相加的函数
Test TestAdd(Test &t1, Test &t2)
{
Test temp(t1.getA() + t2.getA(), t1.getB() + t2.getB());
return temp;
}
int main(void)
{
Test t1(10, 20);
Test t2(100, 200);
t1.add(t2);
t1.printT();
//Test t3 = TestAdd(t1, t2);
Test t3 = t1.add2(t2);
t3.printT();
//((t1 += t2) += t2 )+= t2
//如果相对一个对象连续调用成员方法,每次都会改变对象本身,成员方法需要返回引用。
t1.add(t2).add(t2);
return 0;
}