C++ 成员函数返回一个函数
这是我的代码,但VisualStudio在返回指针行中给指针加下划线?我的代码怎么了 编辑:抱歉输入错误C++ 成员函数返回一个函数,c++,pointers,return,public,member,C++,Pointers,Return,Public,Member,这是我的代码,但VisualStudio在返回指针行中给指针加下划线?我的代码怎么了 编辑:抱歉输入错误 a* b::find() const { a* pointr = head; return pointr; } 在函数的作用域中没有任何变量被声明为pointr,除非声明它,否则编译器怎么知道 pointr和pointer不相同,缺少e 假设这是一个打字错误, 您的函数返回一个指针,但在这种情况下,它指向的内容很重要。如果head是本地变量或没有动态内存分配的指针(指向本地对象
a* b::find() const
{
a* pointr = head;
return pointr;
}
在函数的作用域中没有任何变量被声明为pointr
,除非声明它,否则编译器怎么知道
pointr
和pointer
不相同,缺少e
假设这是一个打字错误,您的函数返回一个指针,但在这种情况下,它指向的内容很重要。如果
head
是本地变量或没有动态内存分配的指针(指向本地对象),则您的指针pointer
指向本地对象,该对象将在函数返回后被销毁,并将成为一个悬空指针
记住规则:您不应返回指向函数局部变量的引用或指针。返回的变量错误 返回指针
在你的代码中。它未在范围中定义。解释您试图执行的操作,并显示更多代码。目前还不清楚。如果Als回答解决了你的问题,那么如果你告诉我们实际的错误信息VS给你,那就容易得多了。IDE有一个实际的警告信息吗?可能是他们愚蠢的拼写检查功能之一,因为C++中没有什么东西可以说你必须正确使用拼写单词,这是愚蠢的。当然,尽管有意义的标识符总是有利的。
a* pointer = head;
return pointr;