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

Класс StringBuf

Данный класс предназначен для удобного и эффективного объединения нескольких строк в итоговую. Подробнее...

#include <stringbuf.hpp>

Полный список членов класса

Открытые члены

 StringBuf ()
 Создает пустой объект.

 StringBuf (const std::string &str)
 Создает объект, изначально содержащий указатель на переданную строку.

StringBuf & operator+ (const std::string &str)
 Переопределенный оператор для добавления строки.

StringBuf & operator+ (int val)
 Переопределенный оператор для конвертации int в строку.

StringBuf & operator+ (unsigned int val)
 Переопределенный оператор для конвертации unsigned int в строку.

StringBuf & operator+ (long val)
 Переопределенный оператор для конвертации long в строку.

StringBuf & operator+ (unsigned long val)
 Переопределенный оператор для конвертации unsigned long в строку.

 operator std::string () const
 Оператор для объединения всех переданных строк в одну итоговую.


Закрытые члены

 StringBuf (const StringBuf &)
 запрещаем копирование.

StringBuf & operator= (const StringBuf &)
 запрещаем присваивание.


Закрытые данные

StringBuf_private::List< const
std::string * > 
ptrs
 указатели на переданные строки

StringBuf_private::List< std::string > tmps
 строки, созданные в процессе конвертации


Подробное описание

Данный класс предназначен для удобного и эффективного объединения нескольких строк в итоговую.

Он также может применяться для конвертации целочисленных типов в строку: f(StringBuf()+"Value is:"+i); В процессе работы он запоминает указатели на переданные строки и собирает их в итоговую строку в операторе преобразования в string.

См. определение в файле stringbuf.hpp строка 98


Конструктор(ы)

StringBuf::StringBuf const StringBuf &   )  [private]
 

запрещаем копирование.

StringBuf::StringBuf  )  [inline]
 

Создает пустой объект.

См. определение в файле stringbuf.hpp строка 113

00113 {}

StringBuf::StringBuf const std::string &  str  )  [inline]
 

Создает объект, изначально содержащий указатель на переданную строку.

См. определение в файле stringbuf.hpp строка 118

00118 { *this+str; }


Методы

StringBuf::operator std::string  )  const
 

Оператор для объединения всех переданных строк в одну итоговую.

Т.к. при добавлении строк при помощи operator+(const std::string& str) в объекте запоминаются только указатели, (неявный) вызов данного оператора может привести к непредсказуемым результатам в случае преждевременного уничтожения переданных строк.

См. определение в файле stringbuf.cpp строка 50

Перекрестные ссылки StringBuf_private::List< const std::string * >::head и ptrs.

00051 {
00052  typedef StringBuf_private::Node<const string*> node_type;
00053  
00054  int len=0;
00055  for (node_type* ptr=ptrs.head; ptr; ptr=ptr->next) len+=ptr->val->size();
00056  
00057  string ret;
00058  ret.reserve(len);
00059 
00060  for (node_type* ptr=ptrs.head; ptr; ptr=ptr->next) ret.append(*ptr->val);
00061  return ret;
00062 }

StringBuf & StringBuf::operator+ unsigned long  val  ) 
 

Переопределенный оператор для конвертации unsigned long в строку.

См. определение в файле stringbuf.cpp строка 43

00044 {
00045  PLUS_BODY("lu")
00046 }

StringBuf & StringBuf::operator+ long  val  ) 
 

Переопределенный оператор для конвертации long в строку.

См. определение в файле stringbuf.cpp строка 38

00039 {
00040  PLUS_BODY("ld")
00041 }

StringBuf & StringBuf::operator+ unsigned int  val  ) 
 

Переопределенный оператор для конвертации unsigned int в строку.

См. определение в файле stringbuf.cpp строка 33

00034 {
00035  PLUS_BODY("u")
00036 }

StringBuf & StringBuf::operator+ int  val  ) 
 

Переопределенный оператор для конвертации int в строку.

См. определение в файле stringbuf.cpp строка 28

00029 {
00030  PLUS_BODY("d")
00031 }

StringBuf & StringBuf::operator+ const std::string &  str  )  [inline]
 

Переопределенный оператор для добавления строки.

В объекте запоминается только указатель на переданную строку, так что необходимо следить за тем, чтобы время жизни переданной строки не закончилось до (неявного) вызова operator std::string().

См. определение в файле stringbuf.hpp строка 158

Перекрестные ссылки StringBuf_private::List< const std::string * >::add() и ptrs.

00159 {
00160  ptrs.add(&str);
00161  return *this;
00162 }

StringBuf& StringBuf::operator= const StringBuf &   )  [private]
 

запрещаем присваивание.


Данные класса

StringBuf_private::List<const std::string*> StringBuf::ptrs [private]
 

указатели на переданные строки

См. определение в файле stringbuf.hpp строка 100

Используется в operator std::string() и operator+().

StringBuf_private::List<std::string> StringBuf::tmps [private]
 

строки, созданные в процессе конвертации

См. определение в файле stringbuf.hpp строка 102


Объявления и описания членов классов находятся в файлах:
Документация по ftext. Последние изменения: Sat Mar 20 17:58:16 2004. Создано системой doxygen1.3