На этом шаге мы перечислим конструкторы и декструктор, используемые при работе со строками.
В таблице 1 перечислены конструкторы и деструктор строк.
Выражение | Описание |
---|---|
string s | Создает пустую строку s |
string s(str) | Создает новую строку как копию существующей строки str |
string s(str, strIdx) | Создает строку s, инициализированную символами строки str, начиная с индекса strIdx |
string s(str, strIdx, strlen) | Создает строку s, инициализированную не более чем strlen символами строки str, начиная с индекса strIdx |
string s(cstr) | Создает строку s, инициализированную С-строкой cstr |
string s(chars, chars_len) | Создает строку s, инициализированную chars_len символами символьного массива chars |
string s(num, с) | Создает строку, состоящую из num экземпляров символа с |
string s(beg, end) | Создает строку, инициализированную всеми символами интервала [beg,end) |
s.~string() | Уничтожает все символы и освобождает память |
Строка не может инициализироваться одним символом. Вместо этого необходимо использовать адрес или явно задать количество вхождений:
std::string s('x'); // ОШИБКА std::string s(l,'x'); // ОК. Создает строку из одного символа 'х'
Следовательно, автоматическое преобразование к типу string может производиться от типа const char*, но не от типа char.
На следующем шаге мы рассмотрим строки и С-строки.