c++ - declaration is incompatible with .. (pointer) -


i'm getting error on .cpp file dequeue function should return pointer node error : identifier node undefined return value , declaration incompatible on dequeue. wondering did wrong. before.

//quasiuniqueq.h #ifndef quasiunique_h #define quasiunique_h class quasiuniqueq {  private:     struct node{     int value;     int age;     };      node* array;     int size;     int top;  void resize(); void copy(); // wrong return value; void aging();        public:  void operator=(const quasiuniqueq& rhs);  quasiuniqueq(int num = 50);  ~quasiuniqueq();  void enqueue(int newnum);  node* dequeue();  bool isempty();  bool isfull();       };  #endif    //quasiuniqueq.cpp  #include "quasiuniqueq.h"  using namespace std;  node* quasiuniqueq::dequeue() //error here {   } 

first, node declared inside quasiunuqieq, need

quasiuniqueq::node* quasiuniqueq::dequeue() { ... } 

however, limited in can outside quasiuniqueq, because node has been declared private, cannot declare quasiuniqueq::node or quasiuniqueq::node* assign return of call quasiuniqueq::dequeue(), , since cannot name quasuuniqueq::node outside class, forced define member function inside class:

struct quasiuniqueq {    ...   node* dequeue() { return .... ; } }; 

then, in principle call method, limitations:

quasiunuqueq q; q.dequeue(); // compiles, useless quasiuniqueq::node* n = q.dequeue(); // error, quasiunuqueq::node private. auto n = q.dequeue(); // ok 

Comments