當我讀The C++ Programming Language 4th Edition,初始化變量中,筆者認爲這是betther使用{}
比=
初始化變量: 但我看到有更多的人使用=
比{}
。
那麼哪種方法是堅持不懈的好原則? =
或{}
?
Thx很多!使用大括號({})或等號(=)時初始化變量
回答
你選擇哪一個取決於你自己的編碼風格。最重要的是,一旦您決定使用哪種方法,請始終使用該方法。不要在兩種方法之間切換。我個人使用(=)符號初始化變量,因爲這是我看到的最常見的變量初始化方法。此外,C的新標準++(C++ 11以後,我相信)允許您初始化變量,像這樣:
int variable(1)
但我勸你對這樣,它不會在某些工作情況,正如你的書可能涵蓋的那樣。
本書建議使用初始值設定項的一個原因是它成爲初始值。
當使用賦值'='時,在某些情況下,您最終會構造一個給它一個初始值的對象,然後代碼將使用該類類型的賦值運算符來更改初始值,因此效率較低。這只是在某些情況下,取決於可用的構造函數等。
但是,在大多數情況下,現代編譯器可以對其進行優化,使其成爲同一事物。所以這不值得擔心。
C++的一個問題是,無論事情有多簡單,總有幾種方法可以做同樣的事情。
這已經不再是這種情況了:http://en.cppreference.com/w/cpp/language/copy_elision –
是的,你說得對,這就是爲什麼我說大多數現代編譯器都將它優化爲同樣的東西。 –
讓我們面對現實,有很多方法來做同樣的事情的原因是語言的歷史。 –
- 1. 大括號或相等的初始化
- 2. 使用大括號初始化集
- 3. 括號初始化與括號問題
- 4. 雙大括號初始化 - 優點
- 5. 初始化列表後的大括號
- 6. 陣列初始化需要大括號
- 7. 類初始化的括號使用
- 8. 雙括號初始化
- 9. 雙括號初始化
- 10. 數組初始化需要大括號初始化列表
- 11. 大括號或相等的初始值設定在工會
- 12. 爲什麼建議統一初始化(使用大括號初始化)?
- 13. 信號量值大於初始化值
- 14. C++ 98大括號const標量初始化
- 15. 用括號內的初始化列表
- 16. as3符號變量尚未初始化
- 17. 初始化變量通過正常括號內
- 18. 使用sem_open初始化信號量
- 19. 使用雙曲花括號初始化矢量<string>
- 20. 使用變量初始化等功能
- 21. 信號量初始化
- 22. 初始化映射時爲什麼不能省略大括號?
- 23. 使用圍繞變量C++的花括號(大括號)
- 24. 使用大括號包裝PHP變量
- 25. Ruby初始化方法何時使用括號
- 26. 我可以使用大括號初始化BCL不可變集合嗎?
- 27. 在數組初始化中混合圓括號和方括號
- 28. Java雙大括號初始化始終工作?
- 29. 雙括號初始化類型混淆
- 30. 缺少括號圍繞初始化
就像Bjarne說的那樣,在前30年中,{}'選項不可用,所以舊代碼使用'='。如果你使用這樣的舊代碼,你應該繼續使用'='來保持一致。在新代碼中,您可以選擇使用'{}',並且有一些新功能*是必需的*。因此,一致性... –
你曾經使用過哪一個保持相同,並能夠同時閱讀 –
我們可以告訴你,這本書沒有? – Galik