HOME ABOUT CONTACT

C/C++ const修飾詞

Rain June 24, 2023
Outline

簡介

修飾時機1: 變數

修飾時機2: 函式參數

修飾時機3: 類別的函式成員

修飾時機4: 函式的指標類別參數

簡介top

const修飾詞是constant的縮寫,這意味著被修飾的對象是不變的、不可修改的,以下有幾種修飾時機:

修飾時機1: 變數top

全域或區域變數在定義時若有被const修飾,都代表程式碼不能再對其值進行修改。


const int x = 10;
x = 20 // 此行會導致編譯錯誤

                        

修飾時機2: 函式參數top

在函式定義時用const修飾其參數,即可避免該函式修改了參數的值。


void func(const int x) {
    x = 20; // 此行會導致編譯錯誤
    std::cout << "x = " << x << std::endl; 
}
                        

修飾時機3: 類別的函式成員top

當const修飾了類別的函式成員,代表該函式不會修改類別中的其它成員。


class MyClass {
public:
    int setX(int value) const { // const修飾函式成員
        x = value; // 此行會導致編譯錯誤
    }
private:
    int x;
};

                        

修飾時機4: 函式的類別指標型參數top

當const修飾了函式的類別指標型參數,代表該類別參數在函式中不能對自身成員進行修改。


class MyClass {
public:
    int setX(int value) { // 移除掉const修飾詞
        x = value; 
    }
    void printX() const {
        std::cout << "x = " << x << std::endl; 
    }
private:
    int x;
};

void func(const MyClass *myClass) {
    myClass->setX(100); // 此行會導致編譯錯誤
    myClass->printX();
}

                        

Last updated:

Related Artical List

  1. C/C++ static修飾詞
  2. C/C++ 命名空間

Article List