3
A
回答
17
兩件事情:
拷貝構造函數必須作爲參數引用,否則他們是無限遞歸(其實語言不會允許你聲明這樣的構造函數)
它不會做任何默認拷貝ctor不會做的事情,但做得很糟糕 - 您應儘可能在拷貝ctor中使用初始化列表。如果默認拷貝文件可以做你想要的,不要試圖自己編寫一個版本 - 你可能只會弄錯它,你需要維護它。
7
存在3個問題。
首先,你忘了「;」在m = a.m的末尾,所以你的代碼不會被編譯。
其次,在大多數情況下,如果您傳遞的大小大於您平臺上寄存器的大小 ,則優先通過引用。
第三,由於您不打算更改源對象,因此最好使用const。 所以,最後這就是我們有:
A(const的一個&一):M(AM){}
+0
關於你的第二點:這不是首選,它是必需的。 – 2010-03-11 16:36:17
5
相關問題
- 1. C++ 11:爲什麼在這裏調用copy ctor?
- 2. 這是一個有效的CSS?
- 3. 這是一個有效的XSS攻擊
- 4. 這是一個有效的XML嗎?
- 5. 這是一個有效的jQuery語句?
- 6. 這是一個有效的jquery分裂?
- 7. 這是一個有效的奎因?
- 8. 這是一個有效的LGPL情況?
- 9. 這是一個有效的MySQL查詢?
- 10. 這是一個有效的ID?
- 11. 是這個有效的JavaScript?
- 12. 是這個有效的CSS?
- 13. 使用copy ctor而不是移動ctor當派生時有析構函數定義
- 14. 調用複製ctor和另一個ctor
- 15. 這個JQuery是否有效?
- 16. 這是一個有效的C代碼,但不是有效的C++代碼?
- 17. 這是一個有效的使用CSS3的:沒有()
- 18. 什麼是int(a)(1)?這是一個有效的c + +語法?
- 19. 這是否是一個有效的getJSON()在jQuery中?
- 20. 這是一個有效的查詢從MySQL獲取單個值?
- 21. 這是一個無效的差異?
- 22. 這是一個很好的(有效)的方式來解決這個JavaScript鍛鍊
- 23. 這是有效的HTML
- 24. 這是有效的jQuery中?
- 25. 這是有效的JSON嗎?
- 26. 這是有效的XML嗎?
- 27. 這是有效的C++ 11
- 28. 這是有效的yaml嗎?
- 29. Dockerfile COPY: 「lchown ......不是一個目錄」
- 30. 這真的不是一個有效的XS:小數?
+1最完整的答案 – Tronic 2010-03-11 16:15:03
實際上看來,這是一個編譯器錯誤,否則。但是,如果它編譯,它應該是無限遞歸。 – UncleBens 2010-03-11 16:15:26
@Uncle,這樣的「拷貝構造函數」被明確禁止。 (他們要求診斷) – 2010-03-11 16:16:01