9 / 9 / 1
Регистрация: 01.07.2012
Сообщений: 138
|
||||||
1 | ||||||
Трудности перегрузки из-за наследования22.09.2012, 18:47. Показов 533. Ответов 6
Метки нет (Все метки)
Если у меня есть класс MyClass и в этом классе я хочу реализовать два перегруженных оператора вывода в потоки в виде дружественных функций.
Вот здесь непонятно, как будет все работать. Смущает то, что класс ofstream является классом, производным от ostream.
0
|
22.09.2012, 18:47 | |
Ответы с готовыми решениями:
6
Должен ли хотя бы один из параметров оператора перегрузки был того же типа, что и тип, в котором этот оператор перегрузки определен Чем отличаются структуры для наследования интерфейса от структур для наследования реализаций? Перегрузки + и == Перегрузки в C# |
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
22.09.2012, 19:14 | 2 |
В соответствиями с правилами выбора функций с учётом неявных приведений оптимальным будет вариант с минимальным количеством преобразований типов.
Так что если вы выводите в нечто, что является ofstream и адресуется как ofstream&, то будет вызвана функция для вывода в ofstream. Если выводит происходит в ofstream, который адресуется как ostream&, то будет вызвана функция с ostream-аргументом, так как это даёт минимум преобразований типов. Вот если бы у вас не было функции с ofstream-аргументом, то тогда даже при передаче ofstream как ofstream& он был бы приведён к ostream& для вызова той функции, что есть.
1
|
9 / 9 / 1
Регистрация: 01.07.2012
Сообщений: 138
|
|
22.09.2012, 20:24 [ТС] | 3 |
А на такой еще вопрос не ответите:
Можно ли всю эту кухню закатать в одну функцию, воспользовавшись как-нибудь хитро ну типа там чем-то вроде typeid?
0
|
9 / 9 / 1
Регистрация: 01.07.2012
Сообщений: 138
|
||||||
22.09.2012, 20:56 [ТС] | 5 | |||||
Нет не все, так не получится точно, потому как хотелось перегрузить оператор вывода в файловый поток с использованием бесформатного write.
Ну то есть типа что-то вот такого
0
|
9 / 9 / 1
Регистрация: 01.07.2012
Сообщений: 138
|
|
23.09.2012, 00:07 [ТС] | 7 |
Скажем так, текстовые файлы могут обходиться без этого.
Что запрещает мне точно таким же образом писать в текстовые файлы и читать из них?
0
|
23.09.2012, 00:07 | |
23.09.2012, 00:07 | |
Помогаю со студенческими работами здесь
7
с++ перегрузки Перегрузки Перегрузки Перегрузки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |