inline、const、mutable、this、static
inline、const、mutable、this、static
在类定义中实现成员函数 incline
成员函数末尾的 const(声明和实现中都要加上 const)
作用:告诉系统,这个成员函数不会修改该对象里任何成员变量的值等等,也就是说,这个成员函数不会修改类 Time的任何状态。===> 也叫做常量成员函数
mutable(不稳定、容易改变)===> 突破 const 限制
使用 mutable 修饰一个成员变量 ===> 说明这个成员变量永远处于可以被修改状态,即便是在 const 修饰的成员函数中,也可以修改
返回自身对象的引用、this
// int m
// int& n = m
// n 相当于 m 的一个绰号,对 n 的操作就是对 m 的操作
Time& Time::getTimeObject(int tmpHour){
Hour += tmpHour;
return *this; // 把对象自己给返回去了
}
调用
// 如何理解这个 this
// 咱们调用成员函数时,编译器负责把这个对象的地址(&myTime) 传递给这个成员函数中的一个隐藏的 tihs 形参
// this 指针只能在成员函数中使用,全局函数以及静态函数都不能使用 this指针
// a. 在普通成员函数中,this是一个指向非 const 对象的 const 指针(类型为 Time,那么 this 就是 Time* const this),表示 this 只能指向当前 Time 对象
// b. 在 const 成员函数中,this是一个指向 const 对象的 const 指针(类型为 Time,那么 this 就是 const Time* const this)
// 注意:第一个 const:代表值不能改,第二个 const:代表只能指向这个对象
Time myTime;
Time& time = myTime.getTimeObject(11);
static成员
调用方式:
- 类名::成员变量名
- 类名::成员函数名
如何定义静态成员变量(分配内存):一般会在某个.cpp 文件中开头定义这个静态成员变量,这样就能保证在调用任何函数之前,这个静态成员变量已经成功初始化了