用作声明的抽象声明符Node*

abstract declarator Node* used as declaration

本文关键字:声明 Node 抽象      更新时间:2023-10-16

我使用的是一个抽象类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);