→ Sidney0503: 可是定義可是宣告 03/24 14:35
→ Sidney0503: 但是初始化的速度跟給值的速度會不一樣 03/24 14:36
→ Sidney0503: 在constructor會用 :a(0) 這是初始化的行為 03/24 14:37
抱歉,我好像敘述得不夠仔細,
S大說的應該是main中要用到class的時候了吧?
其實我是想問說,
1.
class myClass {
public:
myClass () {};
~myClass () {};
private:
int a = 0;
};
2.
class myClass {
public:
myClass() {a = 0};
~myClass() {};
private:
int a;
};
1.和2.這兩者的差別這樣
※ 編輯: prosperous (140.112.25.105), 03/24/2017 14:46:50
推 loveflames: 初始順序不一樣 03/24 15:02
是我誤會了,
剛剛去翻 C++11 Language Extensions,懂S大跟l大的意思了!
感謝^_^
※ 編輯: prosperous (140.112.25.105), 03/24/2017 15:25:25
推 steve1012: 你寫的是in-class initialization 03/24 15:53
→ steve1012: 理論上跟:a(0) 一樣 03/24 15:54
→ steve1012: 當你有很多種constructors的時候蠻好用的 03/24 15:54
推 loveflames: 嚴格來說2不是初始化,a是ref或const就不能這樣了 03/24 19:18
推 Raymond0710: 可隱藏實作部分在.c中 避免重複定義可要用#define保 03/26 19:08
→ Raymond0710: 護機制 03/26 19:08