我有一个函数定义了在CStringW中键入的局部变量,是否可以通过值将该对象返回给调用者,而不是通过引用安全?将本地CStringW返回给调用者是否安全?
1
A
回答
2
是的,应该没问题。 CString
内部使用带引用计数的缓冲区并进行写入时复制,因此,当您创建CString
的副本,然后销毁原始对象时,所有内容都应该“正常工作”。
1
我相信CString是来自MFC,而不是STL,所以你可能想要改变你的标签。
如果你从一个函数返回一个局部变量,它是安全的返回值,但不是可以安全地通过引用返回。按值返回有效地将字符串复制给调用者。通过引用返回给调用者一个对函数返回时销毁的局部变量的引用 - 所以调用者永远不会使用它,并且返回的引用总是无效的。
相关问题
- 1. 将指向字符串的指针返回给调用者是否安全?
- 2. 如何将回调函数的值返回给调用者?
- 3. Android启动服务:“下载操作”是否将结果返回给调用者?
- 4. ASP MVC - 安全地将数据返回给客户端?
- 5. Jquery:将ajax调用的值返回给调用者函数?
- 6. 与本地变量关联的栈内存地址返回给调用者?
- 7. jQuery Ajax:返回值给调用者?
- 8. 发送数据返回给调用者
- 9. Akka:从回调中发送消息给自己是否安全?
- 10. 是否可以安全地从函数中返回一个TCHAR *
- 11. 将返回类型指定给引用,是否发生副本?
- 12. 返回语句不返回控制给调用者在java
- 13. 将此作为参考返回是否安全?
- 14. Can Swift func()将多个值返回给Objective-C调用者?
- 15. 将Oracle参考光标返回给SqlServer T-SQL调用者
- 16. 如何释放将返回给调用者的实例变量?
- 17. 将活动的返回键传递给调用者
- 18. 我是否安全地使用Html.Raw()?
- 19. 使用本地phpunit,如果安装,否则回落到全球
- 20. 返回调用者已有
- 21. 使用let作为返回结果的变量是否安全?
- 22. 将js回调传递给一个在另一个线程中调用它的ffi函数是否安全?
- 23. 是否可以安全地将变量从JavaScript传递给Flash应用程序?
- 24. 从main()调用LoadLibrary是否安全?
- 25. 调用sizeof(* s.begin())是否安全?
- 26. 是否安全返回的成员变量是一个shared_ptr
- 27. GWTP - 我是否正确地将它用于安全和不安全的区域?
- 28. 将JSP值返回给AJAX调用
- 29. 这个C回调是否安全使用C++对象?
- 30. 这个脚本是否安全使用?
反过来实际上是不安全的;不要返回一个局部变量的引用,因为当它超出范围时,你的引用已经死亡。 – GManNickG 2010-08-10 02:57:56