16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117
|
||||||
1 | ||||||
Перегрузка операторов и templates02.06.2015, 01:10. Показов 1213. Ответов 19
Метки нет (Все метки)
Добрый вечер!!
Разбираюсь дальше с классами и шаблонами. Никак не получается создать класс Матрица. Знаю, что в интернете полно решенных примеров, однако хочу разобраться набивая шишки по своему. Вот такой класс:
Скажите, правильно ли я вообще делаю? Выдает ошибку: [Linker Error] Unresolved external 'operator +(const Array_2D<int>&, const Array_2D<int>&)'. Заранее благодарю за помощь!
0
|
02.06.2015, 01:10 | |
Ответы с готовыми решениями:
19
Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this перегрузка операторов перегрузка операторов) Перегрузка операторов |
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||
02.06.2015, 07:16 | 2 | |||||
Сообщение было отмечено krazyd как решение
Решение
1
|
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117
|
|
02.06.2015, 14:47 [ТС] | 3 |
Благодарю вас!
Правильно ли я понимаю, что оператор + будет работать для объектов только одного типа?
0
|
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117
|
|
02.06.2015, 18:49 [ТС] | 5 |
Да. int и double возможно.
0
|
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117
|
|
02.06.2015, 19:15 [ТС] | 7 |
Разные случаи бывают. Разве это плохо?
0
|
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117
|
|
02.06.2015, 19:22 [ТС] | 9 |
А разве type casting для int не произойдет?
0
|
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
|
||||||
02.06.2015, 19:56 | 11 | |||||
Можно предоставить этот выбор компилятору. Если добавить еще один оператор, наподобие:
1
|
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 117
|
|
02.06.2015, 20:01 [ТС] | 13 |
И как тогда это будет выглядить в моем варианте? T1 будет типом класса?
0
|
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
|
|
02.06.2015, 20:02 | 14 |
1
|
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
|
|
02.06.2015, 20:02 | 15 |
еще вроде как в новом стандарте есть возможность в компайл тайме определить тип результата сложения T1 + T2.
подробностей правда не знаю. но в варианте, когда он в компайл тайме определяется могут возникнуть проблемы с кодом. там то результат в переменные определенного типа складываются и их тип может отличатся от типа, который вывел компилятор. в результате будут или ошибки компиляции, или незаметные рантайм преобразования одного типа массива в другой, что не есть гуд.
1
|
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
|
|
02.06.2015, 20:10 | 17 |
Это как-то странно звучит. Не мог бы ты проиллюстрировать свое утверждение, чтобы исключить неправильное понимание этой фразы. В такой формулировке она выглядит спорно.
1
|
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
|
||||||
02.06.2015, 20:23 | 18 | |||||
2
|
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
|
|
02.06.2015, 20:34 | 19 |
Теперь понятно. Согласен. Пользователь написал один тип, а вывелся другой -> каст.
Сперва я про другое подумал.
1
|
02.06.2015, 20:47 | 20 |
1
|
02.06.2015, 20:47 | |
02.06.2015, 20:47 | |
Помогаю со студенческими работами здесь
20
перегрузка операторов Перегрузка операторов С++ Перегрузка операторов << и >> Перегрузка операторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |