c++ - 在基类中声明的 C++ 结构在子类中不可访问
问题描述
我希望你能帮帮我,我已经搜索了论坛,但我没有找到类似的东西。
我写了这两个类:
//AbstrTree.h
#ifndef TREE_ABSTRTREE_H
#define TREE_ABSTRTREE_H
#include <iostream>
using namespace std;
template <class T>
class AbstrTree
{
protected:
struct node
{
T label;
node *left, *right;
node(T info)
{
label = info;
left = right = NULL;
}
};
node *root;
virtual void deleteNode(T, node *&) = 0;
virtual node* findNode(T, node*);
void preOrder(node *);
void inOrder(node *);
void postOrder(node *);
virtual void delTree(node *&);
virtual void printTree(node *) = 0;
bool createNode(T, node *&);
public:
AbstrTree() { root = NULL; };
virtual ~AbstrTree() { delTree(root); };
virtual int insert(T,T) = 0;
bool find(T);
void removeNode(T);
virtual void pre();
virtual void post();
virtual void in();
void print();
};
#endif
//BinTree.h
#ifndef TREE_BINTREE_H
#define TREE_BINTREE_H
#include "AbstrTree.h"
template <class T>
class BinTree : public AbstrTree<T>
{
protected:
virtual void deleteNode(T, node*&);
virtual void printTree(node*);
public:
BinTree();
~BinTree();
virtual bool insert(T, T);
bool insert(T, T,char);
};
#endif
问题是,在 BinTree 子类中,我在 AbstrTree 中声明的“节点”结构是未定义的。
Clion 正是这样说的:
Unknown type name 'node'
谁能明白为什么?
解决方案
推荐阅读
- node.js - Expo react-native 将无法连接到 socketio(Android 和 iOS)
- php - PHP SQL PDO Memcached未将结果存储在缓存中
- macos - 在 Mac OSX 上创建 Win32 资源文件
- c - 赋值运算符和 c
- c++ - 在不同线程的套接字中使用 ZMQ,但不能同时使用
- wordpress - 在 Wordpress/Timber 中搜索作者的所有帖子
- javascript - 将 react-native 更新到 0.64.1 后,在 `../node_modules/react-native/Libraries/FBReactNativeSpec` 中找不到 `FBReactNativeSpec` 的 podspec
- python - 需要帮助从字典中删除空列表
- python - samba 将文件名算法(hash2)修改为 python 中的 unix 文件名
- android - 调整音量时如何隐藏用户界面