С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

перегрузка == для класса string - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как задать указатель для структуры (и не только) http://www.cyberforum.ru/cpp-beginners/thread939702.html
Есть такая задача: Напишите фрагмент кода, который динамически выделит память для структуры, описанной в вопросе 6, и затем прочитает в нее значение члена name. Задача 6 звучит так: Предложите...
C++ Указатель на void Как можно сделать универсальную функцию, которая принимает указатель на неопределенный тип, увеличивает значение на которое указывает этот самый указатель и возвращает его. Что-то вроде этого... http://www.cyberforum.ru/cpp-beginners/thread939697.html
C++ Составить программу обработки данных о книгах
Ребят помогите плиз решить задачку,очень срочно надо... Составить программу обработки данных о книгах. Сведения о каждой книге – это фамилия автора, название и год здания. рограмма должна:...
Файловая система C++
Как получить доступ к файлам на жестких дисках?
C++ Реализация трехсекундной задержки http://www.cyberforum.ru/cpp-beginners/thread939618.html
как реализовать задержку на 3 секунды в ходе выполнения программы?
C++ Полиморфизм и private методы Почему при полиморфном вызове функции возможен вызов private метода??? Хотя бы предупреждение какое нить об изменении спецификатора доступа с public в private... Вот допустим есть три класса: ... подробнее

Показать сообщение отдельно
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,389
Записей в блоге: 2
Завершенные тесты: 1
18.08.2013, 16:56
Если нужно переопределить поведение std::string, то лучше как-нибудь так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
 
class char_traits : public std::char_traits<char>
{
public:
 
    static int compare(const char *left, const char *right, size_t length)
    {
        // тут сравниваем 2 строки
        std::cout << "HERE" << std::endl; 
 
        return 0;
    }
};
 
typedef std::basic_string<char, char_traits> string;
 
int main()
{
    string str1("one"), str2("two");    
    std::cout << std::boolalpha << (str1 == str2) << std::endl;
 
    return 0;
}
http://ideone.com/LJI0o8
правда не все так просто, как кажется на первый взгляд (например операторы << и >> теперь работать не будут), но зато (имхо) более красиво.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.