真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++常函數(shù)

常函數(shù)的意義對與普通函數(shù)來說,因為const關鍵字的增加,體現(xiàn)在對類成員的保護上,現(xiàn)在加以講解:C++ 常函數(shù)

做網(wǎng)站、成都做網(wǎng)站,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)公司已向上千家企業(yè)提供了,網(wǎng)站設計,網(wǎng)站制作,網(wǎng)絡營銷等服務!設計與技術結(jié)合,多年網(wǎng)站推廣經(jīng)驗,合理的價格為您打造企業(yè)品質(zhì)網(wǎng)站。

#include 
using namespace std;
class Ctest
{
private:
        int a;
public:
    Ctest( int a  = 2)
    {
        this->a = a;
    }
    int doubleA() const
    {
        return  a*2;
    }
};
int main()
{
    Ctest * cts = new Ctest(2);
    cout << cts->doubleA() << endl;
    delete cts;
    return 0;
}

結(jié)果:

C++ 常函數(shù)

常函數(shù)->

int doubleA() const    就是在函數(shù)后加const

需要注意的是 :

①:構(gòu)造函數(shù)和析構(gòu)函數(shù)不可以是常函數(shù)

②:常函數(shù)不能對class的類成員進行修改(只能調(diào)用)如下面是不可以的:

C++ 常函數(shù)

但是可以對本函數(shù)內(nèi)部聲明的參數(shù)進行修改

③:常函數(shù)的this指針,有別于普通函數(shù)的this指針

#include 
using namespace std;
class Ctest
{
private:
        int a;
public:
    Ctest( int a  = 2)
    {
        this->a = a;
    }
    int doubleA() const
    {
        return  a*2;
    }
    const Ctest* my() const
    {
        return this;
    }
    Ctest* my1()
    {
        return this;
    }
};
int main()
{
    /*Ctest * cts = new Ctest(2);
    cout << cts->doubleA() << endl;
    delete cts;*/
    Ctest cts(3);
    cout << cts.my()->doubleA() << endl;
    return 0;
}

這里有個注意點:常對象只能調(diào)用常對象,如下面是不允許的:

C++ 常函數(shù)

另外 :

#include 
using namespace std;
class Ctest
{
private:
        int a;
public:
    Ctest( int a  = 2)
    {
        this->a = a;
    }
    int doubleB()
    {
        return  a*2;
    }
    int doubleA() const
    {
        return  a*2;
    }
    const Ctest* my() const
    {
        return this;
    }
    Ctest* my1()
    {
        return this;
    }
};
int main()
{
    /*Ctest * cts = new Ctest(2);
    cout << cts->doubleA() << endl;
    delete cts;*/
    const Ctest cts(3);
    cout << cts.doubleA() << endl;
    return 0;
}

用 const Ctest cts(3) 也是定義常對象

當然,下面的方案也行:

    const Ctest * cts = new Ctest(3);
    cout << cts->doubleA() << endl;

總結(jié) ,常函數(shù)具有保護類成員的作用。


網(wǎng)站標題:C++常函數(shù)
轉(zhuǎn)載來源:http://weahome.cn/article/jeehjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部