0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
|
|||||||||||
1 | |||||||||||
Сравнение между объектами разных классов02.09.2016, 19:39. Показов 11073. Ответов 21
Метки нет (Все метки)
Всем привет,
Есть 4 разных класса, в мэине мне нужно их сравнить. Например:
Или все таки только так:
0
|
02.09.2016, 19:39 | |
Ответы с готовыми решениями:
21
Как организовать передачу данных между объектами разных классов? Взаимодействие между объектами единой иерархии классов Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов Работа с объектами классов |
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
|
|
02.09.2016, 20:28 [ТС] | 3 |
Можно подробнее...
0
|
02.09.2016, 20:30 | 4 | |||||
kirillfit, Через дружественную функцию для обоих классов
1
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
|
|
02.09.2016, 20:31 [ТС] | 5 |
Все понял спасибо!
0
|
Avazart
|
02.09.2016, 21:58
#6
|
Не по теме: Вообще это не во всех случаях очевидно и хорошо выглядит.
0
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
|
03.09.2016, 00:34 | 7 |
0
|
03.09.2016, 00:42 | 8 |
Сравнить собаку со стулом, сравнивая количество ног у собаки и стула, при чем игнорируя одушевленность предмета, наличие хвоста итп.
Но опять же многое зависит от контекста.
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
03.09.2016, 02:10 | 9 | |||||
А мб нужно что-то типа этого (в плане концепции)?
1
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
|
|
03.09.2016, 19:32 [ТС] | 10 |
MrGluck да вот именно для этого и надо было.
Это два derived класса Player и Enemy, между ними надо было сравнивать координаты x и y. Но теперь я поместил эти координаты в класс Piece который base. B main я создаю массив обектов класса Piece, так чтобы был например один Player 3 Enemy, 1 Trap, 1 Treasure. Вот теперь как мне сравнивать например все эти коордиаты между классами, в условии говорилось что нужно тоже использовать RTTI.
0
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
||||||
03.09.2016, 20:22 | 12 | |||||
2
|
03.09.2016, 20:28 | 13 |
Operok, Почему тогда просто не создать класс Point (с перегрузкой оператора сравнения) и включить в оба класса?
Т.е путем композиции. Добавлено через 1 минуту Я к тому что нужно больше контекста.
0
|
Operok
|
03.09.2016, 20:33
#14
|
Не по теме: Avazart, почему бы и нет
0
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
|
||||||
04.09.2016, 14:41 [ТС] | 15 | |||||
Ребята почему не работает? Программа компилируется нормально, ошибок не выдает, я так понял он
применяет дефолтный оператор, так как в мой не заходит и не выдает надпись тест.
0
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
|
|
04.09.2016, 14:55 [ТС] | 17 |
Вот сейчас ошибка компиляции.
error C2678 binary '==': no operator found which takes a left-hand operandof type 'Base' (or there is no acceptable conversion)
0
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
||||||
04.09.2016, 15:45 | 18 | |||||
1
|
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
|
||||||
04.09.2016, 18:18 [ТС] | 19 | |||||
Еще вопрос насчет абстрактного класса.
метод foo() в der2 мне не нужен, но в мэине компилятор не дает создать Base _base[0] = new der2(); пишет нужно объявить метод foo(), что делать если он мне там не нужен. И какая разница между virtual bool foo(); и просто bool foo(); в классе der1? Кликните здесь для просмотра всего текста
0
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
||||||
04.09.2016, 18:50 | 20 | |||||
Тогда что этот метод делает в базовом кассе? Нужно изменить иерархию классов, и, если в классе есть хоть одна чистая виртуальная функция, то это абстрактный класс.
никакой, разве что так визуально понятно что этот метод виртуальный. Достаточно объявить метод виртуальным в одном классе и тогда у всех следующих вниз по иерархии классов этот метод будет виртуальным, а с помощью ключевого слова final можно прекратить это "безобразие"Добавлено через 2 минуты
foo в class der2
0
|
04.09.2016, 18:50 | |
04.09.2016, 18:50 | |
Помогаю со студенческими работами здесь
20
Работа с объектами классов в односвязном списке Перегрузка арифметических операций для работы с объектами классов. Работа с объектами из разных файлов, использования указателя на текущий объект Сообщения между объектами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |