用作声明的抽象声明符Node*
abstract declarator Node* used as declaration
我使用的是一个抽象类SetOfInt
;Btree基类从中继承。虚拟函数find的声明给了我一个编译器错误,我不知道为什么?
这就是确切的错误:
SetOfInt.h:21:错误:
'virtual'
之前应为不合格id
SetOfInt.h:21:错误:抽象声明符'Node*'
用作声明
SetOfInt.h:21:错误:'virtual'
之前应为';'
SetOfInt.h:30:错误:'virtual'
之前应为不合格id
SetOfInt.h:30:错误:抽象声明符'Node*'
用作声明
SetOfInt.h:30:错误:'virtual'
之前应为';'
如有任何帮助,我们将不胜感激!
/* 1 */ #include <cstdlib>
/* 2 */ #include <iostream>
/* 3 */
/* 4 */ using namespace std;
/* 5 */
/* 6 */ class Node
/* 7 */ {
/* 8 */ public:
/* 9 */ Node (int x);
/* 10 */ int m_data;
/* 11 */ Node *m_left;
/* 12 */ Node *m_right;
/* 13 */ };
/* 14 */
/* 15 */ class SetOfInt
/* 16 */ {
/* 17 */ public:
/* 18 */ void virtual add(int x)=0;
/* 19 */ bool virtual test(int x)=0;
/* 20 */ bool virtual remove(int x)=0;
/* 21 */ Node* virtual find(int x)=0;
/* 22 */ };
/* 23 */
/* 24 */ class Btree : public SetOfInt
/* 25 */ {
/* 26 */ public:
/* 27 */ void virtual add(int x);
/* 28 */ bool virtual test(int x);
/* 29 */ bool virtual remove(int x);
/* 30 */ Node* virtual find(int x);
/* 31 */ Node *m_root;
/* 32 */ };
返回类型应位于virtual
关键字之后。
即
virtual void add(int x);
而不是
void virtual add(int x);
相关文章:
- .cpp和.h文件中的模板专用化声明
- 未在作用域中声明unordered_map
- C++避免重复声明的语法是什么
- 如何确保C++函数在定义之前声明(如override关键字)
- 错误:未在此范围内声明'reverse'
- node-gyp 在 macOS 上未正确链接库
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 为什么在定义函数之前先声明它
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- #ifdef和未声明的标识符
- 没有显式声明的int[]中的foreach
- 在基于范围的for循环中使用结构化绑定声明
- 在将变量声明为引用时,堆在释放后使用
- C++:无法访问声明的受保护成员
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 在函数内部的声明中初始化数组,并在外部使用它
- Visual Studio中的函数声明和函数定义问题
- 用作声明的抽象声明符Node*