/////////////////////////////////////////////////////////// // Softwarebauelemente II, Aufgabe O2.1 // // author: Stephan Brumme // last changes: February 26, 2001 #if !defined(AFX_BASICCLASS_H__C0EA0EA0_0BD2_11D5_9BB7_B22A84F06321__INCLUDED_) #define AFX_BASICCLASS_H__C0EA0EA0_0BD2_11D5_9BB7_B22A84F06321__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include using std::ostream; using std::cout; using std::endl; class CBasicClass { public: CBasicClass(); virtual ~CBasicClass(); // show attributes virtual void Show() const; // shows all internal attributes virtual void ShowDebug() const; // display the attributes // friend ostream& operator<<(ostream& mystream, const CBasicClass& myclass); // return class name static char* ClassnameOf() { return "ERROR: CBasicClass::ClassnameOf not overwritten !!!"; } // copy constructors // non-virtual // CBasicClass& operator = (const CBasicClass &myclass); // virtual // virtual bool Copy (const CBasicClass *myclass); // compare two dates // non-virtual // bool operator ==(const CBasicClass &myclass) const; // virtual // virtual bool EqualValue(CBasicClass *myclass) const; protected: // used to perform proper display in derived classes virtual ostream& OutStream(ostream& mystream, bool bDebug=false) const = 0; }; #endif // !defined(AFX_BASICCLASS_H__C0EA0EA0_0BD2_11D5_9BB7_B22A84F06321__INCLUDED_)