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 文件中开头定义这个静态成员变量,这样就能保证在调用任何函数之前,这个静态成员变量已经成功初始化了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2023-10-13 下载的PC游戏启动后报错:无法加载 DLL“steam_api64”: 动态链接库(DLL)初始化例程失败。 (异常来自 HRESU