用作自己对于const部分用法的记录
详情基本都写在代码注释里
// const修饰成员函数
class MyClass
{
public:
MyClass(int m) :n(m) {};
void fun() const;
void funct() const;
void func();
private:
int n;
};
void MyClass::fun() const {
// this->n = 100; 不能修改成员变量
// func(); 不能调用非const成员函数
cout << "fun const" << endl;
}
void MyClass::funct() const {
// 调用const成员函数
fun();
cout << "funct const" << endl;
}
void MyClass::func() {
this->n = 100;
cout << "func "<< n << endl;
fun();
funct();
}
int main() {
//
// MyClass test(10);
// test.fun();
// cout << endl;
// test.funct();
// cout << endl;
// test.func();
const MyClass m(10);
m.fun();
cout << endl;
// m.func(); 不可调用非const成员函数(对象引用和对象指针也一样)
}
mian函数的注释部分的结果如下
fun const
fun const
funct const
func 100
fun const
fun const
funct const
关于const更为详尽的用法可以看看这一篇博客:
https://blog.csdn.net/Eric_Jo/article/details/4138548?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase