Q
左值
-1
A
回答
1
如果你想構建new BrokenPart
在預先分配的內存中的對象,要存儲i
點,你可以使用放置新操作:new (&(*i)) BrokenPart();
2
你不能這樣做。子彈包含Part
s,而不是Part*
。您也無法修改存儲在列表中的Part
對象的內存地址,您可以修改其內容。在迭代器
std::list<Part*> bullets;
/* ... */
*i = new BrokenPart(**i);
注意兩個derreference運營商,一旦拿到Part
指針,然後另一個derreference它:
你可以使用指針列表。
作爲一個建議,我會告訴改變設計。它看起來像Part
類可以重新設計使用state pattern,你應該看看它。
3
解釋錯誤信息:編譯器抱怨&(*i) = ...
沒有意義:&(*i)
是一個地址,無法更改。
對於修復,見fontanini的答案。
相關問題
- 1. 左值參考的左值參考值左值/右值的右值參考值
- 2. 左值
- 3. 左值
- 4. 左值轉換左值Visual Studio
- 5. 左值引用左值引用 - ub?
- 6. 左值=真
- 7. 左值要求
- 8. 需要左值
- 9. 左值問題
- 10. 左值 - 陣列
- 11. 左值操作數賦值時需要左值
- 12. 如果(R值= =左值)
- 13. Python - 快速插值左值
- 14. C++左值和右值
- 15. 左值賦值太複雜
- 16. 返回參考值/左值
- 17. 左值需要作爲左操作
- 18. 執行對左值
- 19. 左值右參考
- 20. 左加入乘值
- 21. scaleBand()將值左移
- 22. 左值引用是否像左值引用一樣工作?
- 23. 作爲賦值左操作數所需的左值?
- 24. 作爲賦值左操作數所需的左值(C程序)
- 25. 作爲賦值左操作數所需的左值
- 26. 左值作爲賦值的左操作數
- 27. 作爲賦值左操作數所需的左值
- 28. 左加入排除空值,並採取左值
- 29. 錯誤:「需要作爲左操作數賦值的左值」
- 30. 錯誤:需要作爲左操作數賦值的左值