|
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
|
||||||
Перегрузка операторов и абстрактный класс07.10.2013, 10:56. Показов 5509. Ответов 12
Метки нет (Все метки)
Имеется два класса (DecString и SymbString), наследуемых от абстрактного AString. Можно ли как-нибудь перегрузить операции - и =, чтобы работа с обоими классами осуществлялась в одном методе Operate класса Action?
0
|
||||||
| 07.10.2013, 10:56 | |
|
Ответы с готовыми решениями:
12
Перегрузка операторов. Класс String Класс многочлен, перегрузка операторов |
|
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
|
|||||||
| 07.10.2013, 11:17 [ТС] | |||||||
0
|
|||||||
|
|
|
| 07.10.2013, 11:45 | |
|
Для отображения разности перегружать оператор присваивания не обязательно. В чем сложность с перегрузкой оператора "-"? Перегружаете его для каждого класса (у Вас же есть прототипы этих функций) и дальше используете. Вот только метод Operate должен будет либо принимать 2 значения, либо сразу ему отправлять (obj1 - obj2). Или проблема в самой реализации перегрузки оператора?
0
|
|
|
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
|
|||||||
| 08.10.2013, 14:34 [ТС] | |||||||
Как реализовать метод Operate, чтобы он производил вычисления как с символьными, там и с десятичными строками?
0
|
|||||||
|
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
|
|
| 11.10.2013, 10:52 [ТС] | |
|
все еще актуально
0
|
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 11.10.2013, 14:58 | |
|
Oberyn Martell,
Попробуй создать в самом классе Action виртуальный метод virtual operator-(){}; Если не заработает попробуй явно привести тип pObj1 к pObj2 dynamic_cast<pObj2*>(pObj1) И вообще я токо от досмотрел ты просто инт присваиваешь Попробуй эту строчку AString* pObj3 = pObj1 - pObj2; заменить на: AString* pObj3 = &((*pObj1) - (*pObj2)); как то так
1
|
|
|
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
|
|
| 11.10.2013, 17:08 [ТС] | |
|
Уже все сделал. Спасибо за помощь
0
|
|
|
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 21
|
|
| 18.10.2013, 15:06 | |
|
Помогите решить задачу.
программу, демонстрирующую работу с объектами двух типов: SymbString(символьная строка) и DecString(десятичная строка), для чего создать систему соответсвующих классов. Каждый объект должен иметь идентификатор(в виде произвольной строки символов)и одно или несколько полей для хранения состояния объекта(один класс является потомков другого). Клиенту(функции main)должны быть доступны следующие основные операции(методы): создать объект, удалить объект, показать значение объекта, выполнение операции operator +(T s1, T s2), где Т - это либо SymbString, либо DecString. Операции по созданию и удалению объектов инкапсулировать в классе Factory. Предусмотреть меню, позволяющее продемонстрировать заданные операции. При необходимости в разрабатываемые классы добавляются дополнительные методы(например, конструктор копирования, операция присваивания и т.п)для обеспечения надлежащего функционирования этих классов. operator +(T s1, T s2) //для объектов SymbString - конкатенация строк s1 и s2; //для объектов прочих классов - сложение соответсвующих численных значений с последующим преобразованием к типу Т
0
|
|
|
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
|
||||||||||||||||||||||||||||||||
| 18.10.2013, 20:37 [ТС] | ||||||||||||||||||||||||||||||||
1
|
||||||||||||||||||||||||||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 19.10.2013, 03:32 | |
|
Небольшие замечания:
Проверяйте в операторе присваиваний присвоение самому себе, Имена, начинающиеся с нижнего подчеркивания зарезервированы для разработчиков компиляторов, их лучше не использовать. Глобальные переменные лучше избегать в любом их виде. std::string name логичнее было бы засунуть в Action т.к. действие обладает именем. Вдобавок, оно имеет метод GetName, а никакого другого типа, кроме как std::string для name не прогнозируется и смысловая нагрузка у данного свойства всех наследников одинаковая. имена функций принято писать с маленькой буквы, в отличии от имен класса.
1
|
|
|
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 21
|
|
| 19.10.2013, 14:22 | |
|
Oberyn Martell, Спасибо Вам Большое!!!!
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 57
|
||||||
| 28.01.2017, 22:28 | ||||||
|
Помогите пожалуйста все собрать вместе
1 error C1083: Не удается открыть файл включение: AString.h: No such file or directory 2 IntelliSense: не удается открыть источник файл "AString.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 47 3 IntelliSense: не удается открыть источник файл "SymbString.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 65 4 IntelliSense: не удается открыть источник файл "AString.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 90 5 IntelliSense: не удается открыть источник файл "DecString.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 111 6 IntelliSense: не удается открыть источник файл "Action.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 157 7 IntelliSense: не является именем класса или структуры c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 160 8 IntelliSense: не удается открыть источник файл "Summa.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 170 9 IntelliSense: не удается открыть источник файл "Factory.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 171 10 IntelliSense: не удается открыть источник файл "Menu.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 172 11 IntelliSense: не удается открыть источник файл "ShowOct.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 173 12 IntelliSense: не удается открыть источник файл "ShowStr.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 174 13 IntelliSense: не удается открыть источник файл "SymbString.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 178 14 IntelliSense: не удается открыть источник файл "OctString.h" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 179 15 IntelliSense: идентификатор "Action" не определен c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 183 16 IntelliSense: vector не является шаблоном c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 184 17 IntelliSense: идентификатор "Action" не определен c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 184 18 IntelliSense: требуется выражение c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 184 19 IntelliSense: требуется круглая скобка ")" c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 184 20 IntelliSense: идентификатор "Menu" не определен c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 187 21 IntelliSense: идентификатор "factory" не определен c:\Users\Андрей\Documents\Visual Studio 2012\Projects\ConsoleApplication213\Cons oleApplication213\ConsoleApplication213. cpp 188
0
|
||||||
| 28.01.2017, 22:28 | |
|
Помогаю со студенческими работами здесь
13
Класс описывающий матрицу. Перегрузка операторов Перегрузка операторов, если класс содержит массив Перегрузка операторов сравнения и разницы. Класс String
Класс строк, перегрузка операторов. Как вернуть объект класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|