/* * CENA C++ Utilities * * by Stephane Chatty * * Copyright 1991, 1992 * Laboratoire de Recherche en Informatique (LRI) * Centre d'Etudes de la Navigation Aerienne (CENA) * * CcuString allocation and copying * * $Id$ * $CurLog$ */ #ifndef String_H_ #define String_H_ #include "cplus_bugs.h" /*? class StringMemory ?*/ extern char* NewString (const char*); extern char* NewString (const char*, int); extern char* NewString (int); extern void FreeString (char*); /*? end ?*/ class CcuShadowString; class CcuString { private: char* Str; public: inline CcuString () { Str = 0; } CcuString (const char*); CcuString (const char*, int); CcuString (int); CcuString (const CcuString&); CcuString (const CcuShadowString&); ~CcuString (); inline operator const char* () const { return Str; } CcuString& operator = (const CcuString&); CcuString& operator = (const char*); CcuString& operator = (const CcuShadowString&); CcuString& Assign (const char*, int); int Length () const; }; class CcuShadowString { private: const char* Str; public: inline CcuShadowString () { Str = 0; } CcuShadowString (const char*); CcuShadowString (const CcuString&); inline CcuShadowString& operator = (const CcuString& s) { Str = (const char*) s; return *this; } inline CcuShadowString& operator = (const char* s) { Str = s; return *this; } inline operator const char* () const { return Str; } int Length () const; }; #endif /* String_H_ */