函数声明中有什么问题?
What is wrong in the function declaration?
请给我解释一下,在这个方法的声明/描述中有什么错误?
class Set
{
struct Node {
// ...
};
// ...
Node* &_getLink(const Node *const&, int) const;
// ...
};
Node* &Set::_getLink(const Node *const &root, int t) const
{
// ...
}
我没有看到错误,但是编译器(MS VS c++)给出了许多语法错误。
您忘记完全限定Node
的名称(它在Set
的作用域中定义):
Set::Node* &Set::_getLink(const Node *const &root, int t) const
// ^^^^^
如果没有完全限定,编译器将寻找一个名为Node
的全局类型,该类型不存在。
这是一个范围问题。您需要在这里添加Node
前缀:
Set::Node* &Set::_getLink(const Node *const &root, int t) const
{
// ...
}
确实,Node
在遇到它的时候是未知的(您是在名称空间范围内,而不是在Set
的范围内)。您也可以使用auto
:
auto Set::_getLink(const Node *const &root, int t) const -> Node *&
{
// ...
}
在->
之后,您进入Set
的范围,并且知道Node
。
你没有在全局作用域中定义Node
所以使用这个代码
//by Set::Node we give compiler that this function exist in class Node
Set::Node* &Set::_getLink(const Node *const &root, int t) const
{
// ...
}
相关文章:
- 警告处理为错误这里有什么问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 当我尝试添加 2 个大字符串时,我无法弄清楚出了什么问题
- 违反const正确性:我应该现实地期待什么问题
- 这个带有模板<类 Vector 的C++代码片段有什么问题>
- 我的逻辑反转字符串中的元音有什么问题?
- 需要以下代码的帮助,下面的代码有什么问题
- 常量公共成员有什么问题?
- c++无值sort()的问题是什么?
- 以下代码中的函数模板有什么问题?
- 这个返回元素位置的基于循环的函数有什么问题?
- creat_list2功能有什么问题?
- 基本的 c++ 问题:如果我在函数中创建某些内容并返回它会发生什么?
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 什么是钻石问题?是一系列问题还是特定问题?
- 格式说明符C++有什么问题
- 我应该在 main 函数中写什么来测试我的问题?
- 任何人都可以告诉我我的 C++ 代码出了什么问题?
- 方法问题 - 什么会改变值,什么不会改变?什么是无效的?