abstract declarator Node* used as declaration
<p>I am using an abstract class <code>SetOfInt</code>; where a Btree baseclass inherits from. The declaration of the virtual function find gives me a compiler error and I cannot figure out why? </p>

<p>This is the exact error:</p>

<blockquote>
  <p>SetOfInt.h:21: error: expected unqualified-id before <code>'virtual'</code><br>
  SetOfInt.h:21: error: abstract declarator <code>'Node*'</code> used as declaration<br>
  SetOfInt.h:21: error: expected <code>';'</code> before <code>'virtual'</code><br>
  SetOfInt.h:30: error: expected unqualified-id before <code>'virtual'</code><br>
  SetOfInt.h:30: error: abstract declarator <code>'Node*'</code> used as declaration<br>
  SetOfInt.h:30: error: expected <code>';'</code> before <code>'virtual'</code></p>
</blockquote>

<p>Any help would be highly appreciated!</p>

<pre><code>/*  1 */ #include &lt;cstdlib&gt;
/*  2 */ #include &lt;iostream&gt;
/*  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 */ };
</code></pre>
