#ifndef __GPARAM_HPP #define __GPARAM_HPP class String; class istream; class ostream; /* aGenericParameter is a parameter to a generic class, like the 'T' parameter * to C++ templates */ class aGenericParameter { String *name; // name of the parameter int isatype; // type or number? public: aGenericParameter(const char *name, int istype); aGenericParameter(const String& name, int istype); aGenericParameter(istream& is); virtual ~aGenericParameter(); const String* getName() const; void changeName(const String& s); void changeName(const char *s); int IsAType() const { return isatype; } //stream stuff friend ostream& operator<<(ostream& os, const aGenericParameter& o); ostream& write(ostream& os) const; }; inline ostream& operator<<(ostream& os, const aGenericParameter& o) { return o.write(os); } #endif