abstract declarator Node *用作声明

时间:2011-06-27 21:17:58

标签: c++

我正在使用抽象类SetOfInt; Btree基类继承自的地方。虚函数find的声明给我一个编译器错误,我无法弄清楚为什么?

这是确切的错误:

  

SetOfInt.h:21:错误:'virtual'之前预期的非合格身份号   SetOfInt.h:21:error:抽象声明符'Node*'用作声明
  SetOfInt.h:21:错误:在';'之前预期'virtual'
  SetOfInt.h:30:错误:'virtual'之前的预期unqualified-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 */ };

1 个答案:

答案 0 :(得分:4)

返回类型应该在virtual关键字之后。

virtual void add(int x);

而不是

void virtual add(int x);