Титульная страница   Иерархия классов   Алфавитный указатель   Классы   Файлы   Члены классов   Члены файла   Примеры  

BGDNetString.h

См. документацию.
00001 
00006 #ifndef __BGDNetString_h__
00007 #define __BGDNetString_h__
00008 
00009 #include "BGDNetConfig.h"
00010 
00011 #include <string>
00012 #include "BGDNetShare.h"
00013 
00014 namespace BGDNet
00015 {
00016 
00017 using std::string;
00018 
00025 class BGDNET_API StringImp : public Share
00026 {
00027 public:
00028 
00029   StringImp( const char* p, size_t len = -1 );
00036   StringImp( const StringImp& imp );
00041   virtual ~StringImp( void );
00048   string* m_pStr; 
00049 };
00050 
00051 
00052 
00053 
00054 #ifdef _MSC_VER
00055 # pragma warning(disable:4231)
00056 #endif
00057 
00058 BGDNET_TEMPLATE(SharePtr<StringImp>);
00059 
00060 #ifdef _MSC_VER
00061 # pragma warning(default:4231)
00062 #endif
00063   
00064 
00065 
00066 
00078 class BGDNET_API String
00079 {
00080 public:
00081 
00082   String( void );
00087   String( const String& s );
00092   String( const char* p );
00098   String( const char* p, size_t len );
00105   String& operator =( const String& s );
00110   String& operator =( const char* p );
00115   String& operator +=( const String& s );
00120   String& operator +=( const char* s );
00125   String& operator +=( const char c );
00130   operator const char*( void ) const;
00135   const char* ptr( void ) const;
00141   size_t length( void ) const;
00147   friend bool operator ==( String s1, String s2 );
00148 
00149 private:
00150 
00151   void append( const char* buf, size_t len );
00158   void freeze( void );
00164   SharePtr<StringImp> m_pImp;
00168 };
00169 
00173 inline bool operator ==( String s1, String s2 )
00174 {
00175   return (*s1.m_pImp->m_pStr) == (*s2.m_pImp->m_pStr);
00176 }
00177 
00181 inline bool operator !=( String s1, String s2 )
00182 {
00183   return !(s1 == s2);
00184 }
00185 
00186 } // namespace BGDNet
00187 
00188 #endif //__BGDNetString_h__

РУП БЕЛГИПРОДОР Документация на BGDNet сгенерирована Mon Apr 1 18:36:53 2002, БЕЛГИПРОДОР ©  2001