我有一個函數定義了在CStringW中鍵入的局部變量,是否可以通過值將該對象返回給調用者,而不是通過引用安全?將本地CStringW返回給調用者是否安全?
1
A
回答
2
是的,應該沒問題。 CString
內部使用帶引用計數的緩衝區並進行寫入時複製,因此,當您創建CString
的副本,然後銷燬原始對象時,所有內容都應該「正常工作」。
1
我相信CString是來自MFC,而不是STL,所以你可能想要改變你的標籤。
如果你從一個函數返回一個局部變量,它是安全的返回值,但不是可以安全地通過引用返回。按值返回有效地將字符串複製給調用者。通過引用返回給調用者一個對函數返回時銷燬的局部變量的引用 - 所以調用者永遠不會使用它,並且返回的引用總是無效的。
相關問題
- 1. 將指向字符串的指針返回給調用者是否安全?
- 2. 返回流是否安全?
- 3. 如何將回調函數的值返回給調用者?
- 4. C++:在函數中安全地使用調用者的本地?
- 5. Android啓動服務:「下載操作」是否將結果返回給調用者?
- 6. ASP MVC - 安全地將數據返回給客戶端?
- 7. Jquery:將ajax調用的值返回給調用者函數?
- 8. 與本地變量關聯的棧內存地址返回給調用者?
- 9. 發送數據返回給調用者
- 10. jQuery Ajax:返回值給調用者?
- 11. Akka:從回調中發送消息給自己是否安全?
- 12. 是否可以安全地從函數中返回一個TCHAR *
- 13. C#安全地返回字典引用
- 14. 被調用者是否可以強制其調用者在python中返回?
- 15. 將返回類型指定給引用,是否發生副本?
- 16. 將此作爲參考返回是否安全?
- 17. 返回語句不返回控制給調用者在java
- 18. 將活動的返回鍵傳遞給調用者
- 19. 將Oracle參考光標返回給SqlServer T-SQL調用者
- 20. 如何最好的將異步任務返回給調用者
- 21. Can Swift func()將多個值返回給Objective-C調用者?
- 22. 我是否安全地使用Html.Raw()?
- 23. 安全地提示是/否使用cin
- 24. 使用本地phpunit,如果安裝,否則回落到全球
- 25. 返回調用者已有
- 26. 使用let作爲返回結果的變量是否安全?
- 27. 返回通過引用傳遞的參數是否安全?
- 28. 將js回調傳遞給一個在另一個線程中調用它的ffi函數是否安全?
- 29. 是否可以安全地將變量從JavaScript傳遞給Flash應用程序?
- 30. 在.NET中調用SmtpClient.Dispose()是否安全?
反過來實際上是不安全的;不要返回一個局部變量的引用,因爲當它超出範圍時,你的引用已經死亡。 – GManNickG 2010-08-10 02:57:56