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 文件中开头定义这个静态成员变量,这样就能保证在调用任何函数之前,这个静态成员变量已经成功初始化了

posted @ 2024-10-13 23:58  爱新觉罗LQ  阅读(5)  评论(0编辑  收藏  举报