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

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

Восстановить пароль Регистрация
 
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2135 / 968 / 223
Регистрация: 30.11.2013
Сообщений: 3,239
09.07.2015, 22:30     Своя обёртка над std::string #1
Добрый вечер,

пишу парсер и часто пишу такого рода участки кода
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);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.07.2015, 23:19     Своя обёртка над std::string #2
std::string как и многие другие классы стандартной библиотеки не заточен для реализации наследования интерфейса. В частности, из-за отсутствия виртуального деструктора (тут, правда, некоторые могут возразить).
rikimaru2013, префикс для методов уж точно давать не стоит.
Если в стандартном классе не хватает какой-то функциональности я бы лучше добавил несколько свободных функций.
hoggy
5227 / 2118 / 403
Регистрация: 15.11.2014
Сообщений: 4,803
Завершенные тесты: 1
09.07.2015, 23:27     Своя обёртка над std::string #3
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Могу ли я попасть в ад за это?
если наследник добавляет лишь методов - беды быть не должно.

но с другой стороны, я б посмотрел в сторону свободных функций.
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
10.07.2015, 07:22     Своя обёртка над std::string #4
Не нужно, есть boost algorithm string и boost format
Yandex
Объявления
10.07.2015, 07:22     Своя обёртка над std::string
Ответ Создать тему
Опции темы

Текущее время: 16:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru