【问题标题】:C++ when to return pointers [closed]C ++何时返回指针[关闭]
【发布时间】:2021-02-12 01:36:23
【问题描述】:

假设你有一个应该返回对象的函数,你一般是返回对象的指针还是对象本身?什么时候应该返回指针/对象?

【问题讨论】:

标签: c++


【解决方案1】:

一般来说,您可能希望返回对象引用,因为这样您只传输指针的副本而不是整个对象的副本 - 特别是在对象很大的情况下。

我的理解是,当您在函数内的 stack 上创建对象时,您只想返回一个副本 - 这是因为当函数执行时对象将超出范围返回并将被删除。在堆上创建的对象可以通过引用返回,但以后必须删除以避免内存泄漏。

【讨论】:

  • 我不同意这一点。复制省略和移动语义意味着按值返回对象通常很便宜,modern C++ recommendations 建议使用返回类型来指示所有权与借用语义。
  • @SilvioMayolo 您可能想继续为这个问题写一个竞争性答案 - 听起来您对这个问题的理解比我更深入
猜你喜欢
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多