Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для stawerfar
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1

Перегрузка бинарной операции <

09.08.2012, 12:18. Показов 895. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет написал перегрузку для структуры:
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
26
27
28
29
30
31
32
33
34
35
36
    typedef struct t_FileInfo
    {
        t_String file_name; /*имя файла*/
        t_String file_way;  /*адрес к файлу*/
 
        /*конструктор с параметрами*/
        t_FileInfo(t_String fn = (""),
                   t_String fw = ("")) :
                                         file_name(fn),
                                         file_way(fw)
        {}
 
    /*перегрузка оператора сравнения*/
 
    t_Bool operator < (const t_FileInfo second);
 
    }t_FileInfo; /*Структура для хранения имени файла и его полного адресса*/
 
    t_Bool t_FileInfo::operator < (const t_FileInfo second)
    {
        /*задать регулярное выражения для опредиления соответствия*/
        t_Boost::regex xRegEx("[\\d\\D\\w\\W\\.]+(\\.(c)|(cpp))$");
        /*поиск соответствия*/
        t_Bool bfirst  = t_Boost::regex_match( this->file_name.c_str(), xRegEx );
        t_Bool bsecond = t_Boost::regex_match( second.file_name.c_str(), xRegEx );
 
        /*проверка входящей строки на соответствие шаблону*/
        if((bfirst == bsecond)||(bfirst && !bsecond))
        {
            return (true);
        }
        else
        {
            return (false);
        }   
    }
Дальше использую это для сортировки вектора подобных значений.
Я пишу и под Linux и под Win32 по этому часто некоторые вещи делаю на разных компиляторах, ну для линукс я использую стандартный компилятор CodaBolx а для винды компилятор VS2010.
На линуховском компиляторе проканывает без ошибок и варингов, а вот на win32 пишет ниже скрин.
Как этого избежать, или игнорить ведь если нажимать продолжить то в итоге он сортирует как надо.
Миниатюры
Перегрузка бинарной операции <  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2012, 12:18
Ответы с готовыми решениями:

Ошибка компиляции: нет перегруженной бинарной операции +.
Подскажите в чем ошибка. Компилятор говорит что нет перегруженной бинарной операции + для такого типа (41 строка) #include...

Перегрузка операции ~
Задача: Перегрузить операцию ~ (унарная операция) так, чтобы она изменяла знак закрытых элементов – данных на противоположный для класса,...

Перегрузка операции >>
Здравствуйте. Возник такой вопрос: возможни ли перегрузить оператор &gt;&gt; так, чтобы пользователь мог вводить с клавиатуры время в формату...

2
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
09.08.2012, 12:21
1. оператор должен быть константным
C++
1
t_Bool t_FileInfo::operator < (const t_FileInfo& second) const
2.
Цитата Сообщение от stawerfar Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
if((bfirst == bsecond)||(bfirst && !bsecond))
* * * * {
* * * * * * return (true);
* * * * }
* * * * else
* * * * {
* * * * * * return (false);
* * * * }
C++
1
return ((bfirst == bsecond)||(bfirst && !bsecond));
1
 Аватар для stawerfar
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
09.08.2012, 12:35  [ТС]
исправил ошибка осталась! только одну вещь заметил если поменять местами
C++
1
2
3
4
5
6
7
8
if((bfirst == bsecond)||(bfirst && !bsecond))
* * * * {
* * * * * * return (true); /*тут на false*/
* * * * }
* * * * else
* * * * {
* * * * * * return (false); /*тут на true*/
* * * * }
то работает без ошибки но сортирует не в ту сторону как только я использую старую комбинацию опять вылазить ошибка.
PS: может я неправильно написал сам объект вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    /*функциональны объект для сотритовки списка файлов по критерию расширения*/
    class Extension
    {
        public:
        t_Bool operator() (const t_FileInfo&  first, const t_FileInfo&  second)const;
    };
 
    /*опредиление метода класса Extension для сортировки файлов*/
    t_Bool Extension::operator() (const t_FileInfo&  first, const t_FileInfo&  second)const
    {
        t_FileInfo s = first,d = second;
        return (s > d);
    }
//вызов сортировки такой
....
 /*сортировка вектора имен и адрессов найденных файлов по типу расширения, приоритет файлам с расширениями *.с и *.cpp*/
        std::sort(this->files_info.begin(),this->files_info.end(),Extension());
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2012, 12:35
Помогаю со студенческими работами здесь

Перегрузка операции
Запрограммировать и протестировать заданную перегруженную операцию, содержащуюся в классе, производном от заданного класса VECTOR. V...

Перегрузка операции >>
Всем привет! Суть: есть класс, есть объект, есть перегруженная операция &gt;&gt; для ввода полей объекта. Есть приватный метод, который...

Перегрузка операции
Добрый день, Друзья! Столкнулся с такой проблемой, необходимо сравнить 2 пары чисел, вводимых с клавиатуры: Я перегрузил операцию ввода...

Перегрузка операции %
Как перегрузить операцию % в с++?

Перегрузка операции +
Всем привет! Ребята, обясните, пжлста, почему конструктор вызывается дважды. Rational integer1( c, d ),h;// инициализация h ( здесь...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru