C++常量成員函數(shù)如何定義

c++
小樊
82
2024-11-09 03:14:29

在C++中,常量成員函數(shù)(const member function)是一個(gè)不能修改對(duì)象狀態(tài)的成員函數(shù)。這意味著在常量成員函數(shù)中,你不能調(diào)用任何非const成員函數(shù),因?yàn)樗鼈兛赡軙?huì)修改對(duì)象的狀態(tài)。要定義一個(gè)常量成員函數(shù),只需在函數(shù)聲明和定義前加上const關(guān)鍵字即可。

以下是一個(gè)常量成員函數(shù)的示例:

#include <iostream>

class MyClass {
public:
    // 構(gòu)造函數(shù)
    MyClass(int value) : data(value) {}

    // 常量成員函數(shù):不能修改對(duì)象狀態(tài)
    int getData() const {
        return data;
    }

    // 非const成員函數(shù):可以修改對(duì)象狀態(tài)(注意:這不是常量成員函數(shù))
    void setData(int value) {
        data = value;
    }

private:
    int data;
};

int main() {
    MyClass obj(10);

    // 調(diào)用常量成員函數(shù)
    std::cout << "Data: " << obj.getData() << std::endl;

    // 嘗試調(diào)用非const成員函數(shù)(編譯錯(cuò)誤)
    // obj.setData(20);

    return 0;
}

在這個(gè)例子中,getData()是一個(gè)常量成員函數(shù),因?yàn)樗荒苄薷膶?duì)象的狀態(tài)。而setData()是一個(gè)非const成員函數(shù),因?yàn)樗梢孕薷膶?duì)象的狀態(tài)。

0