【问题标题】:Member function return a function成员函数返回一个函数
【发布时间】:2012-02-23 03:20:26
【问题描述】:
a* b::find() const
{
  a* pointr = head;

  return pointr;

}

这是我的代码,但 Visual Studio 在返回指针行中为指针下划线?我的代码有什么问题?

编辑:抱歉打字错误

【问题讨论】:

  • 解释你想要做什么并展示更多代码。目前还不清楚。如果 Als 回答解决了您的问题,请接受他的回答。
  • 如果你向我们展示 VS 给你的实际错误信息会容易得多。
  • 是否有来自 IDE 的实际警告消息?
  • 可能是他们放入的那些愚蠢的拼写检查功能之一,因为 C++ 标准中没有任何内容规定您必须使用正确拼写的英文单词,尽管有意义的标识符总是有利的,当然。

标签: c++ pointers return public member


【解决方案1】:
a* pointer = head;

return pointr;   

你没有在函数范围内声明为pointr的任何变量,除非你声明它,编译器怎么知道?

pointrpointer 不相同,缺少一个 e

假设这是一个错字,
您的函数返回一个指针,但在这种情况下它指向的内容很重要。如果head 是一个没有动态内存分配的局部变量或指针(指向本地对象),那么您的指针pointer 指向一个本地对象,一旦函数返回,该对象将被销毁,并将成为一个悬空指针。

记住规则:
您不应返回对函数局部变量的引用或指针。

【讨论】:

    【解决方案2】:

    你返回了一个错误的变量

    返回指针;

    在您的代码中。范围内没有定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多