C++類的成員初始化
學到一個類的成員初始化,目前已知的用途是給類內部的const類型變量進行賦值。
首先,如果像這么干,編譯器會報錯。
class MyClass{
public:
Myclass(int a, int b){
regVar = a;
constVar = b;
}
private:
int regVar;
const int constVar;
};
這樣做會報錯的原因是,構造器內部的代碼只有在類被實例化時才會運行。所以我先定義了一個const類型的整型數,這個數字原則上是不可以改變的,這是不可以被改變的,所以報錯了。
那么,要怎么辦呢?在C++中,我們利用構造器進行成員初始化。(這里我不知道怎么說了,英文是Member Initialization List),這個列表由一個冒號連接。用variable(value)的形式進行賦值。說起來好抽象,看代碼。
class MyClass{
public:
Myclass(int a, int b): regVar(a), constVar(b){
// code here
}
private:
int regVar;
const int constVar;
};
這樣看起來很高級,初始化必須用於const類型的賦值,可以選用於一般的變量賦值。
