1. 類成員為const型別
2. 類成員為引用型別
#include using namespace std;
class a
void print_val()
private:
const int i;
int p;
int &j;
};int main(int argc ,char **argv)
究其因
const物件或引用只能初始化但是不能賦值。建構函式的函式體內只能做賦值而不是初始化,因此初始化const物件或引用的唯一機會是建構函式函式體之前的初始化列表中。
3. 類成員為沒有預設建構函式的類型別
#include using namespace std;
class base
private:
int val;
};class a
void print_val()
private:
int p;
base b;
};int main(int argc ,char **argv)
原因同樣是建立物件時,要初始類成員的每乙個成員
4. 如果類存在繼承關係,派生類必須在其初始化列表中呼叫基類的建構函式
#include using namespace std;
class base
private:
int val;
};class a : public base
void print_val()
private:
int p;
};int main(int argc ,char **argv)
c 必須在類初始化列表中初始化的幾種情況
1.類成員為const型別 2.類成員為引用型別 include using namespace std class a void print val private const inti const intp int j 引用 int main int argc char argv 究其因 con...
c 必須在類初始化列表中初始化的幾種情況
1.類成員為const型別 2.類成員為引用型別 include using namespace std class a void print val private const inti intp int j int main int argc char argv 究其因 const物件或引用只能...
c 必須在類初始化列表中初始化的幾種情況
from 1.類成員為const型別 2.類成員為引用型別 include using namespace std class a void print val private const int i int p int j int main int argc char argv 究其因 const...