成员函数返回一个函数

发布于 2024-12-29 18:21:55 字数 179 浏览 1 评论 0原文

a* b::find() const
{
  a* pointr = head;

  return pointr;

}

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

编辑:抱歉错字

a* b::find() const
{
  a* pointr = head;

  return pointr;

}

This is my code but visual studio is underlining pointr in the return pointr line? What's wrong with my code?

EDIT: SORRY TYPO

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

原谅过去的我 2025-01-05 18:21:55
a* pointer = head;

return pointr;   

在函数范围内没有任何声明为pointr的变量,除非您声明它,否则编译器如何知道?

pointrpointer 不一样,缺少一个 e

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

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

a* pointer = head;

return pointr;   

You d not have any variable declared as pointr in the scope of the function, How will the compiler know unless you declare it?

pointr and pointer are not same, there is an e missing.

Assuming that is a typo,
Your function returns a pointer but what it points to is important in this case. If head is a local variable or pointer without dynamic memory allocation(pointing to local object) then your pointer pointer is pointing to a local object, which will be destroyed once the function returns and will be a dangling pointer.

Remember the Rule:
You should not return reference or pointer to an variable local to function.

怎言笑 2025-01-05 18:21:55

您返回了错误的变量

返回指针;

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

You have a wrong variable returned

return pointr;

in your code. It is not defined in the scope.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文