| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Кто знает удобный класс для строк? |
| Автор: Diaus 24.7.2004, 09:17 |
| Пользовался долгое время классом CString, но в некоторых моментах он меня не устраивает: 1) Он работает, как тип по значению, тобишь при присваивании происходит полное копирование CString s1 ="Some string"; CStrng s2; s2 = s1; 2) Попробовал как-то поюзать его в консольном приложении, так что-то не получилось. Кстатии не подскажете, какие хедеры нужно включить для этого(или для этого обязательно юзать библиотеку MFC) |
| Автор: chipset 24.7.2004, 09:20 | ||
| Насчёт первого, не понял конкретно что тебе не нравится? Насчёт второго, юзай STL.
|
| Автор: Diaus 24.7.2004, 15:25 |
| По-моему я довольно ясно сказал, повторюсь подробнее. Что конкретно не нравится: при каждом присваивании создается дополнительная копия, а я хочу, чтобы копия создавалась только при изменении. MyString str1 = "abcd"; MyString str2 = str1;// str1 и str2 указывают на одну и ту же строку str2[2] = 'k'; // для str2 создаётся отдельная копия! В обычном случае копия создаётся сразу Вопрос был в том, имеются ли стандартные классы строк, которые реализовывали бы такое поведение? Во второй части вопроса я спрашивал про CString(хотя и за string спасибо, но меня интересовал именно CString). |
| Автор: Fixin 24.7.2004, 20:43 |
| Попробуй сделать свой собственный класс с перегрузкой операторов. Все будет так, как ты захочешь. |
| Автор: Diaus 24.7.2004, 23:38 |
| Этим сейчас и занимаюсь |
| Автор: Borisff2003 26.7.2004, 05:41 |
| А кто будет отвечать за удаление строки, или ссылки считать будешь? |
| Автор: chipset 26.7.2004, 07:17 |
| Diaus Для CString надо включить #include <atlstr.h> Добавлено @ 07:17 Он вообще ATL'овский класс насколько я понял... |
| Автор: AndyY 26.7.2004, 10:27 | ||
| Diaus сдается мне, что такой класс породит исключительно опасный код. Вот пример:
глядя на код, это поведение неочевидно, а значит породит баги. |
| Автор: Borisff2003 26.7.2004, 10:54 | ||
Тут проблема не в классе а в функции А вот то что придется реализовывать семантику умного указателя с автоматическим подсчетом ссылок, вот это да. |