class Tree {
struct Node {
int data;
Node *left,*right;
Node(int v, Node *n = NULL):data(v),left(n),right(n) {}
};
Node *root;
int size;
public :
Tree();
~Tree();
struct Node* GetRoot();
Run Code Online (Sandbox Code Playgroud)
这是我的.h文件.当我在源文件上写下以下内容时:
struct Node* Tree::GetRoot() {
return root;
}
Run Code Online (Sandbox Code Playgroud)
我从Eclipse获得以下警告:
- 未找到成员声明
有什么想法吗?我感觉自己像个尝试过的一切
在您的定义中,您需要指定私有结构的范围:
struct Tree::Node* Tree::GetRoot() {
// ^^^^^^
return root;
}
Run Code Online (Sandbox Code Playgroud)
正如其他人在评论中指出的那样,值得注意的是,调用此函数的客户端无法Tree::Node直接访问该类型,而只能使用auto关键字:
Tree t;
auto root = t.GetRoot();
// pass the obtained value back
t.DoSomethingWithRoot(root);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
384 次 |
| 最近记录: |