const修饰成员函数

1)
常量限定修饰符,它把一个对象转换为常量(constant)。
const对象必须初始化而且是在定义的同时。
初始化后的const对象(或指针)是不能修改的。

2)修饰成员函数
const类对象只能调用const成员函数,不能调用普通成员函数;
const成员函数不能修改类的成员变量,若要修改则用mutable修饰该成员变量。

3)例子

class Text{
    private:
        int k;  //mutable int k;
    public:
        Text(int kk){
            k=kk;
        }   
        void printconst() const{
            k=1000;            //不能修改类的成员变量
            cout<<k<<endl;
        }   
        void print(){
            cout<<k<<endl;
        }   
};

int main(){
    Text e(100);
    e.print();
    const Text t=e;
    //t.print();    //不能调用普通成员函数
    t.printconst();
    return 0;
}

2. 初始化列表
构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表

foo(string s, int i):name(s),id(i){};    //初始化列表
原文地址:https://www.cnblogs.com/stellar/p/8892337.html