const详解_解const-CSDN博客
本文内容学习自上面的文章,ta写的非常好,非常感谢!!!
1.const成员函数:该函数不可以修改该对象的任何成员变量
class T
{
public:int i;int j;
public:void fun() const; //类里面声明
};
void T::fun() const //类外定义
{}void T::fun() const //类外定义
{i=10;//写法错误,i只能读,不能写。
}
2.const限定符不可用于析构函数和构造函数,一般的函数也不可用const。
3.const T t;
将const用于对象上,则该对象只能调用const成员函数。
const成员函数内部可以调用其他const成员函数和非const成员函数。
非const成员函数内部可以调用其他const成员函数和非const成员函数。
4.const成员变量
在类中定义时必须给初值,或在初始化列表中给值,不可在构造函数体中赋值。
class T
{
public:int i;int j;const int k;T(int x) :i(x), j(10)//,k(x){k = 10;//错误cout << "调用了构造函数" << endl;}
};class T
{
public:int i;int j;const int k;T(int x) :i(x), j(10),k(x) //正确{cout << "调用了构造函数" << endl;}
};class T
{
public:int i;int j;const int k=10;正确T(int x) :i(x), j(10){cout << "调用了构造函数" << endl;}
};