以前也有学过const对它了解,归根结底只是了解
用法只限于简单的使用没有一个深入的理解,
用法1: 代替宏 和 常量
#define MAX 1000 //没有了解const之前
const int MAX 1000 //有了const之后
用法2 : 参数
MyFun(string str1); //以前的写法
MyFun(const string & str1) //这样少了一个临时对象(这个是引用的功效),也说明了str1是个入参,不能改变它
MyFun(int const * const p);// 限制了p的所有操作,相当于有了只读属性,也说明了p 是个入参,不能改变它
用法3: 常函数成员
class A {
public:
void fun()const
{...} //这里不能修改任何类成员的值,否则编译器报错, 相当于是只读函数
}
这个一般用于获取类的属性,例如: getXXX()
用法4: 常对象
const MyClass my; //这个my只能调用MyClass 的 也就是 用法3中的 fun()这种函数
注意: 常对象只能调用类内的常函数成员
用法5: 返回值
const MyClass & getMy() ; //返回一人常引用对象,注意: 常对象只能调用类内的常函数成员,也就是 用法3中的 fun()这种函数
当然你也可以 const MyClass & getMy() const; //这样它就是一个 : 返回值 为常引用对象的 常函数成员