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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как задать указатель для структуры (и не только) http://www.cyberforum.ru/cpp-beginners/thread939702.html
Есть такая задача: Напишите фрагмент кода, который динамически выделит память для структуры, описанной в вопросе 6, и затем прочитает в нее значение члена name. Задача 6 звучит так: Предложите объявление структуры, описывающей рыбу. Структура должна включать вид, вес в полных унциях и длину в дробных дюймах. Вот я написал структуру: struct fish {
C++ Указатель на void Как можно сделать универсальную функцию, которая принимает указатель на неопределенный тип, увеличивает значение на которое указывает этот самый указатель и возвращает его. Что-то вроде этого (нерабочий вариант): void *f(void *pv) { *pv = *pv + 1; return pv; } 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... Вот допустим есть три класса: #ifndef CLASS_H #define CLASS_H #include <iostream> подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
18.08.2013, 16:56     перегрузка == для класса string
Если нужно переопределить поведение 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
правда не все так просто, как кажется на первый взгляд (например операторы << и >> теперь работать не будут), но зато (имхо) более красиво.
 
Текущее время: 06:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru