推 ilway25:我前幾天念 Modern C++ Design 才遇到一模一樣的問題= = 12/06 12:59
推 littleshan:struct A(){} 這是啥寫法?而且也編不過 12/06 13:00
※ 編輯: spider391 來自: 220.134.96.34 (12/06 13:40)
→ spider391:已經更正為 struct A{}; 謝謝 12/06 13:40
推 littleshan:這道理就跟你寫 A x(); 這樣 x 會被當成 function 12/06 15:22
→ littleshan:在要放type的地方寫A()會被當成是回傳A的function 12/06 15:23
→ littleshan:但多加括號後compiler把它視為一個expression 12/06 15:24
→ littleshan:因此會把 A() 當成是建構 A 的 ctor 12/06 15:25
推 loveme00835:不用讀 Modern C++ Design 就遇得到這問題了阿 :) 像 12/06 17:23
→ loveme00835:是 std::vector 的傳入兩個迭代器版本的建構子, 也會 12/06 17:24
→ loveme00835:讓編譯器以為是函式宣告 12/06 17:24
→ spider391:謝謝說明^^ 12/06 17:44
→ hilorrk:我記得primer上的例子就是love大的那個XD 12/07 01:07
→ hilorrk:還是more effective? 有點忘了... 12/07 01:08
→ tinlans:建構子的案例,在 Effective STL 很前面的 Item。 12/07 14:37
→ tinlans:Item 6,PDF 檔直接 Google 書名就有了。 12/07 14:38