亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++ 常函數

發布時間:2020-06-11 22:34:57 來源:網絡 閱讀:1067 作者:Aonaufly 欄目:編程語言

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

#include <iostream>
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;
}

結果:

C++ 常函數


常函數->

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

需要注意的是 :

①:構造函數和析構函數不可以是常函數

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

C++ 常函數

但是可以對本函數內部聲明的參數進行修改

③:常函數的this指針,有別于普通函數的this指針

#include <iostream>
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;
}

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

C++ 常函數


另外 :

#include <iostream>
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;

總結 ,常函數具有保護類成員的作用。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松桃| 巫溪县| 分宜县| 洛宁县| 郓城县| 梁山县| 崇州市| 恩平市| 紫金县| 万荣县| 特克斯县| 平武县| 长岭县| 吉木萨尔县| 汪清县| 淮滨县| 奇台县| 绥芬河市| 永昌县| 双城市| 资溪县| 青神县| 合作市| 紫云| 英超| 大化| 峨山| 开阳县| 孝感市| 集安市| 波密县| 西峡县| 沛县| 金沙县| 抚顺市| 苗栗县| 荆州市| 灵寿县| 乐陵市| 阿克陶县| 诏安县|