C ++何时返回指针[关闭]
Posted
技术标签:
【中文标题】C ++何时返回指针[关闭]【英文标题】:C++ when to return pointers [closed] 【发布时间】:2021-02-12 01:36:23 【问题描述】:假设你有一个应该返回对象的函数,你一般是返回对象的指针还是对象本身?什么时候应该返回指针/对象?
【问题讨论】:
这能回答你的问题吗? Returning an object or a pointer in C++ 【参考方案1】:一般来说,您可能希望返回对象引用,因为这样您只传输指针的副本而不是整个对象的副本 - 特别是在对象很大的情况下。
我的理解是,当您在函数内的 stack 上创建对象时,您只想返回一个副本 - 这是因为当函数执行时对象将超出范围返回并将被删除。在堆上创建的对象可以通过引用返回,但以后必须删除以避免内存泄漏。
【讨论】:
我不同意这一点。复制省略和移动语义意味着按值返回对象通常很便宜,modern C++ recommendations 建议使用返回类型来指示所有权与借用语义。 @SilvioMayolo 您可能想继续为这个问题写一个竞争性答案 - 听起来您对这个问题的理解比我更深入以上是关于C ++何时返回指针[关闭]的主要内容,如果未能解决你的问题,请参考以下文章