假設我們有一個名爲Animal的類型結構,並且我們有兩個名爲Cat和Dog的對象。 我正在嘗試編寫一個代碼,聲明一個名爲Cat的對象,並將其數據成員初始化爲與另一個名爲Dog的對象相同的值。這兩個對象都是struct Animal類型。我想知道是不是Animal Cat = Dog
。或者 Animal Cat = &Dog
。 我想知道它們之間有什麼不同。將對象及其數據成員複製到另一個對象
0
A
回答
3
你第一次嘗試就是對的。變體可以在這裏看到:
Animal cat("silvester");
Animal dog("fido");
cat = dog;
在你的第二個例子,你實際上採取的地址「狗」,並將其分配給非指針類型(動物)。第二個版本不會編譯,因爲類型不匹配。
區別是巨大的。我們正在討論對象和指向對象的指針。指針的值是內存中的地址,而對象的值是對象的數據本身。
0
這兩個語句都是copy initialization的示例。匹配等於右邊的表達式類型的構造函數是被選中的。所以,你的問題實際上是關於如何將參數傳遞給通過引用接受它們的函數。答案是,它看起來完全像是通過價值傳遞。 &
前綴獲取變量的地址,並在將指針傳遞給該函數時使用。所以,如果你的Animal
有一個像這樣的構造函數Animal::Animal(Animal*)
,它會被Animal Cat = &Dog
調用。
相關問題
- 1. Angular-2:將一個對象複製到另一個對象
- 2. 將一個對象複製到另一個對象
- 3. 將值從一個對象複製到另一個對象
- 4. 將表格數據從一個對象複製到另一個對象AX 2012
- 5. 如何將JavaScript對象複製到另一個對象中?
- 6. 如何將類對象複製到另一個類對象
- 7. 將XML數組從一個XML對象複製到另一個xml對象
- 8. 將一個類的所有成員複製到當前對象
- 9. 複製從一個對象到另一
- 10. 噴射/複製一個JSON對象到另一個JSON對象延伸其中
- 11. 將數據成員注入到對象
- 12. AS3:將裝載器從一個對象複製到另一個對象
- 13. 使用反射覆制對象屬性到另一個對象
- 14. 複製MVC模型類對象的值到另一個對象
- 15. 訪問另一個對象的成員
- 16. 如何將數據從一個對象行復制到同一個類中的另一個對象行中
- 17. Java的一個protobuff對象複製到其他protobuff對象
- 18. Microsoft Access - 將對象屬性複製到同一類型的另一個對象
- 19. 將一個對象複製到另一個
- 20. 如何將一個圖形對象複製到另一個
- 21. 複製一個對象的數據到其他Java中
- 22. 將數據從一個對象複製到另一個具有有限屬性的對象
- 23. 將對象列表複製到另一個對象的列表中
- 24. 簡單的方法將對象值複製到另一個類型的對象?
- 25. 類指針作爲另一個對象的數據成員
- 26. ReSharper可以生成將屬性從一個對象複製到另一個對象的代碼嗎?
- 27. C++:在基類的成員函數中複製對象數據
- 28. 不能一個jQuery對象複製到一個jQuery對象
- 29. AngularJS將一個對象映射到另一個對象
- 30. 將一個對象綁定到另一個對象
只有一個人會編譯。使用那個。 – 2014-10-06 01:54:17
狗和貓從動物身上繼承嗎?或者他們是動物的實例嗎? – Kam 2014-10-06 02:01:56
@Kam:「兩隻** **叫做貓和狗」。 – 2014-10-06 02:02:58