Re: [問題] initialize const data member
※ 引述《startbomb51 (~森林之熊~)》之銘言:
: 請問一下
: 如果我現在寫了兩個分檔
: 一個A.h (裡面放class的宣告等)
: 另一個A.cpp (裡面就是一些建構子或函式定義)
: 現在A.h裡面
: class A{
: private:
: const int x;
: };
: 我記得好像const的值要在宣告時就先初始化
: 可是好像沒辦法在.h檔裡面做 (印象中,不曉得有無出入
: 在.cpp檔建立建構子初始 系統又叫我到.h檔做= =
: 被這問題煩好久了...
如果是const member的話 必須在member initialization list做初始化
A::A():x(the_number_of_x)
{
}
因為constructor是在物件已經產生後才執行的 此時const member就應該是const
如果是static member的話 必須在宣告的地方做初始化
class A{
static int x = 1;
}
因為static member是共享於該class所有instance 不能在constructor初始化
因為constructor在你每次產生物件的時候都會執行一次
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.154.15
推
04/11 22:48, , 1F
04/11 22:48, 1F
→
04/11 22:48, , 2F
04/11 22:48, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章