Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rikimaru2013
C++ Game Dev
2435 / 1129 / 240
Регистрация: 30.11.2013
Сообщений: 3,687
#1

Своя обёртка над std::string - C++

09.07.2015, 22:30. Просмотров 324. Ответов 3
Метки нет (Все метки)

Добрый вечер,

пишу парсер и часто пишу такого рода участки кода
C++
1
2
3
4
5
6
7
8
std::string QWE = node;
QWE += "/";
std::string::size_type q1 = res.find(node);
res.erase(q1, QWE.size());
std::string::size_type q2 = res.find(".png");
res.erase(q2, 4);
std::string newName = "img_";
newName += res;
Понимая, что это рано или поздно выбесит сделал обёртку
C++
1
2
3
class RkString :
    public std::string
{};
теперь код лаконичен
C++
1
2
res.rkReplace("http://www.cyberforum.ru/images/", "");
                res.rkReplace(".png", "");
Могу ли я попасть в ад за это? И стоит мне дальше эксперементировать и переопределить свой класс как шаблонный для wstring и string ?
C++
1
2
RkString<WString> a;
RkString<String> b;

В планах еще определить StringFormat
C++
1
2
RkString a;
a.rkFormat("MyName%s, I am %d old", "NIgga", 14);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2015, 22:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Своя обёртка над std::string (C++):

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’ - C++
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

Обёртка над Variable arguments - C++
Здравствуйте! У меня есть вот такой шаблон: template&lt;typename TYPE&gt; vector&lt;TYPE&gt; MakeVector(int Count,...) { vector&lt;TYPE&gt;...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Реализация класса MyString. Стандартная библиотека, std::string, std::vector - C++
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и почему ошибка выдается???#include...

Передача функции указатель на элемент std::vector<std::string> - C++
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
09.07.2015, 23:19 #2
std::string как и многие другие классы стандартной библиотеки не заточен для реализации наследования интерфейса. В частности, из-за отсутствия виртуального деструктора (тут, правда, некоторые могут возразить).
rikimaru2013, префикс для методов уж точно давать не стоит.
Если в стандартном классе не хватает какой-то функциональности я бы лучше добавил несколько свободных функций.
1
hoggy
Нарушитель
6587 / 2768 / 476
Регистрация: 15.11.2014
Сообщений: 6,112
Завершенные тесты: 1
09.07.2015, 23:27 #3
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Могу ли я попасть в ад за это?
если наследник добавляет лишь методов - беды быть не должно.

но с другой стороны, я б посмотрел в сторону свободных функций.
1
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
10.07.2015, 07:22 #4
Не нужно, есть boost algorithm string и boost format
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2015, 07:22
Привет! Вот еще темы с ответами:

Операция std::cout для Объекта типа std::string - C++
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам&quot; void...

Как правильно перевести std::wstring в std::string ? - C++
Собственно как? :)

Почему std::string_view МЕДЛЕННЕЕ, чем std::string? - C++
Всем привет! Нужно найти количество уникальных строк в больших текстовых файлах (размером до нескольких гигабайт). Почему в...

Как привести std::wstring к std::string? - C++
Как привести std::wstring к std::string?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.07.2015, 07:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru