title: abstract declarator Node* used as declaration
body: <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>