Js::Number extends Js::JVar extends Var
Js::JVar uses Js::Number in it.
So I've included jvar.h in Js::Number class. which compiles fine.
and I've made forward reference for Js::Number in jvar.h which doesn't compile and fires compilation errors.
and here goes my source codeCode:jvar.cpp:31: error: invalid use of incomplete type 'struct Js::Number' jvar.h:31: error: forward declaration of 'struct Js::Number'
jnumber.h
Js::Number Compiles fine.Code:#include <../var.h> #include "jvar.h" namespace Js { class Number : public Js::JVar{ private: Var num; public: Number(); Number(unsigned int val); Number(unsigned long val); Number(unsigned short val); Number(double val); Number(float val); Number(int val); Number(short val); Number(long val); ~Number(); }; }
jvar.h
jvar.cppCode:#include <string> #include <memory> #include "../var.h" using std::string; using std::auto_ptr; namespace Js{ class Number;//Line 31 class String; class Array; class Object; class Function; class Bool; } namespace Js { class JVar: public Var{ private: string lhs; Var* rhs; public: JVar(); JVar(JVar*); JVar(long); ..... }
Code:..... Js::JVar::JVar(long r): Var(), rhs(0x0){ Js::Number* x = new Js::Number(r);//Line 31 //rhs = auto_ptr<Var>(dynamic_cast<Var*>(x)); } .....



LinkBack URL
About LinkBacks



