enum typeof { undefined = 0, number = 1, boolean = 2, string = 3, symbol = 4, function = 5, object = 6 }; class Error{ private: string error; public: Error(string e):error(e){} string message(){ return error; } } class Number{ private: long integer; double real; unsigned long uInt; unsigned double uReal; unsigned char represent; const string type = "Number"; public: Number(long& i):integer(i),represent(0){} Number(unsigned long& i):uInt(i),represent(1){} Number(double& r):real(r),represent(2){} Number(unsigned double& r):uReal(r),represent(3){} Number& operator=(long& i){ integer = i; represent = 0; } Number& operator=(unsigned long& i){ uInt = i; represent = 1; } Number& operator=(double& r){ real = r; represent = 2; } Number& operator=(unsigned double& r){ uReal = r; represent = 3; } Number& operator+=(long& i){ } Number& operator+=(unsigned long& i){ } Number& operator+=(double& r){ } Number& operator+=(unsigned double& r){ } string operator+=(string& s){ } string operator+=(char& c){ } } class var{ private: void * data; unsigned short type; string constructor; public: var():data(NULL),type(typeof.undefined),constructor("none"){} var& operator=(var& rhs){ if(rhs.constructor == this->constructor){ data.set(rhs.get()); }else{ } } short typeof(){return type;} string instanceof(){return constructor;} template <typename T> void useAs(T& container){ container = *((T*)(data)); } void forEach(void (*f)(string, var)){ if(type == typeof.object) ((Object*)(data))->forEach(f); else throw Error("Variable has no 'forEach' method."); } void forEach(void (*f)(int, var)){ if(type == typeof.object){ } } } class Object{ private: var * values; string * keys; unsigned short length; var * pValues; string * pKeys; unsigned short pLength; public: Object(){} void forEach(void (*f)(string, var)){ for(int i = 0; i < length; i++){ (*f)(keys[i], values[i]); } } void instanceof(string constructor){ return (constructor == "Object"); } } class Array : public Object{ }
Standard input is empty
prog.cpp:1:6: error: expected identifier before ‘typeof’ enum typeof { ^ prog.cpp:1:13: error: expected primary-expression before ‘{’ token enum typeof { ^ prog.cpp:1:13: error: expected unqualified-id before ‘{’ token prog.cpp:13:5: error: ‘string’ does not name a type string error; ^ prog.cpp:15:18: error: expected ‘)’ before ‘e’ Error(string e):error(e){} ^ prog.cpp:16:5: error: ‘string’ does not name a type string message(){ ^ prog.cpp:19:1: error: expected ‘;’ after class definition } ^ prog.cpp:26:21: error: ‘signed’ or ‘unsigned’ invalid for ‘uReal’ unsigned double uReal; ^ prog.cpp:28:11: error: ‘string’ does not name a type const string type = "Number"; ^ prog.cpp:33:29: error: ‘signed’ or ‘unsigned’ invalid for ‘r’ Number(unsigned double& r):uReal(r),represent(3){} ^ prog.cpp:33:5: error: ‘Number::Number(double&)’ cannot be overloaded Number(unsigned double& r):uReal(r),represent(3){} ^ prog.cpp:32:5: error: with ‘Number::Number(double&)’ Number(double& r):real(r),represent(2){} ^ prog.cpp:46:40: error: ‘signed’ or ‘unsigned’ invalid for ‘r’ Number& operator=(unsigned double& r){ ^ prog.cpp:46:13: error: ‘Number& Number::operator=(double&)’ cannot be overloaded Number& operator=(unsigned double& r){ ^ prog.cpp:42:13: error: with ‘Number& Number::operator=(double&)’ Number& operator=(double& r){ ^ prog.cpp:56:41: error: ‘signed’ or ‘unsigned’ invalid for ‘r’ Number& operator+=(unsigned double& r){ ^ prog.cpp:56:13: error: ‘Number& Number::operator+=(double&)’ cannot be overloaded Number& operator+=(unsigned double& r){ ^ prog.cpp:54:13: error: with ‘Number& Number::operator+=(double&)’ Number& operator+=(double& r){ ^ prog.cpp:58:5: error: ‘string’ does not name a type string operator+=(string& s){ ^ prog.cpp:60:5: error: ‘string’ does not name a type string operator+=(char& c){ ^ prog.cpp:62:1: error: expected ‘;’ after class definition } ^ prog.cpp: In member function ‘Number& Number::operator=(long int&)’: prog.cpp:37:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘Number& Number::operator=(long unsigned int&)’: prog.cpp:41:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘Number& Number::operator=(double&)’: prog.cpp:45:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘Number& Number::operator=(double&)’: prog.cpp:49:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘Number& Number::operator+=(long int&)’: prog.cpp:51:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘Number& Number::operator+=(long unsigned int&)’: prog.cpp:53:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘Number& Number::operator+=(double&)’: prog.cpp:55:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘Number& Number::operator+=(double&)’: prog.cpp:57:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: At global scope: prog.cpp:68:5: error: ‘string’ does not name a type string constructor; ^ prog.cpp:78:18: error: expected primary-expression before ‘)’ token short typeof(){return type;} ^ prog.cpp:78:19: error: expected unqualified-id before ‘{’ token short typeof(){return type;} ^ prog.cpp:79:5: error: ‘string’ does not name a type string instanceof(){return constructor;} ^ prog.cpp:83:27: error: expected ‘,’ or ‘...’ before ‘(’ token void forEach(void (*f)(string, var)){ ^ prog.cpp:93:1: error: expected ‘;’ after class definition } ^ prog.cpp: In constructor ‘var::var()’: prog.cpp:70:16: error: ‘NULL’ was not declared in this scope var():data(NULL),type(typeof.undefined),constructor("none"){} ^ prog.cpp:70:27: error: expected primary-expression before ‘typeof’ var():data(NULL),type(typeof.undefined),constructor("none"){} ^ prog.cpp:70:45: error: class ‘var’ does not have any field named ‘constructor’ var():data(NULL),type(typeof.undefined),constructor("none"){} ^ prog.cpp: In member function ‘var& var::operator=(var&)’: prog.cpp:72:16: error: ‘class var’ has no member named ‘constructor’ if(rhs.constructor == this->constructor){ ^ prog.cpp:72:37: error: ‘class var’ has no member named ‘constructor’ if(rhs.constructor == this->constructor){ ^ prog.cpp:73:18: error: request for member ‘set’ in ‘((var*)this)->var::data’, which is of non-class type ‘void*’ data.set(rhs.get()); ^ prog.cpp:73:26: error: ‘class var’ has no member named ‘get’ data.set(rhs.get()); ^ prog.cpp:77:5: warning: no return statement in function returning non-void [-Wreturn-type] } ^ prog.cpp: In member function ‘void var::forEach(void*)’: prog.cpp:84:20: error: expected primary-expression before ‘typeof’ if(type == typeof.object) ^ prog.cpp:84:20: error: expected ‘)’ before ‘typeof’ prog.cpp:85:15: error: ‘Object’ was not declared in this scope ((Object*)(data))->forEach(f); ^ prog.cpp:85:22: error: expected primary-expression before ‘)’ token ((Object*)(data))->forEach(f); ^ prog.cpp:86:61: error: no matching function for call to ‘Error::Error(const char [34])’ else throw Error("Variable has no 'forEach' method."); ^ prog.cpp:86:61: note: candidates are: prog.cpp:11:7: note: Error::Error() class Error{ ^ prog.cpp:11:7: note: candidate expects 0 arguments, 1 provided prog.cpp:11:7: note: Error::Error(const Error&) prog.cpp:11:7: note: no known conversion for argument 1 from ‘const char [34]’ to ‘const Error&’ prog.cpp: In member function ‘void var::forEach(void (*)(int, var))’: prog.cpp:89:20: error: expected primary-expression before ‘typeof’ if(type == typeof.object){ ^ prog.cpp:89:20: error: expected ‘)’ before ‘typeof’ prog.cpp: At global scope: prog.cpp:98:5: error: ‘string’ does not name a type string * keys; ^ prog.cpp:101:5: error: ‘string’ does not name a type string * pKeys; ^ prog.cpp:105:27: error: expected ‘,’ or ‘...’ before ‘(’ token void forEach(void (*f)(string, var)){ ^ prog.cpp:110:21: error: ‘string’ has not been declared void instanceof(string constructor){ ^ prog.cpp:113:1: error: expected ‘;’ after class definition } ^ prog.cpp: In member function ‘void Object::forEach(void*)’: prog.cpp:107:15: error: ‘void*’ is not a pointer-to-object type (*f)(keys[i], values[i]); ^ prog.cpp:107:18: error: ‘keys’ was not declared in this scope (*f)(keys[i], values[i]); ^ prog.cpp: In member function ‘void Object::instanceof(int)’: prog.cpp:111:32: warning: comparison with string literal results in unspecified behaviour [-Waddress] return (constructor == "Object"); ^ prog.cpp:111:32: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] prog.cpp:111:40: error: return-statement with a value, in function returning 'void' [-fpermissive] return (constructor == "Object"); ^ prog.cpp: At global scope: prog.cpp:117:1: error: expected ‘;’ after class definition } ^
Standard output is empty