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
Post a Comment