C++ const方法及对象

来源:互联网 发布:淘宝情趣内衣网红裸模 编辑:程序博客网 时间:2024/06/01 10:39

一、整体代码

       01.cpp

#include <iostream>using namespace std;class Test{public:    Test(int x) : x_(x), outputTimes_(0)    {    }    int GetX() const//不能改变变量的值    {        cout<<"const GetX ..."<<endl;        //x_ = 100;        return x_;    }    int GetX()//支持重载    {        cout<<"GetX ..."<<endl;        return x_;    }    void Output() const    {        cout<<"x="<<x_<<endl;        outputTimes_++;    }    int GetOutputTimes() const    {        return outputTimes_;    }private:    int x_;    mutable int outputTimes_;//const定义的方法能够改变};int main(void){    const Test t(10);//有点类似于const int a =10;不能改变a的值,这里同样不能改变对象变量的值。                     //所以只能调用const的方法,避免危险    t.GetX();//调用const的那个GetX    Test t2(20);    t2.GetX();//调用正常的GetX    t.Output();    t.Output();    cout<<t.GetOutputTimes()<<endl;    return 0;}

二、运行结果

      


三、解释

        const方法不能改变成员变量,如果想改变,那么成员变量前加上mutable关键字

        const Test t(10) 只能调用const 的方法

        Test t(20) 既可以const方法,也能调用非const方法,如果两者都有(支持重载),优先调用非const方法。

原创粉丝点击