![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
![]()
Функция average(3, 6) возвращает число типа int, которое является средним арифметическим от двух аргументов типа int, когда она вызывается в одном файле, и возвращает число типа double, которое является средним арифметическим от двух аргументов типа int, когда она вызывается в другом файле в одной и той же программе.
// 1 файл Код:
Код:
Как вообще можно написать эти функции чтобы небыло ошибок? Я пробовал эти функции делать статическими (static), только все равно ничего не получается. ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
![]() Код:
Код:
обзови ее по другому и будет тебе счастье Код:
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
![]()
Вот я цитату приведу из книги Стивен Прата 'Язык программировния С++. Лекции и упражнения'.
"Можно воспользоваться ключевым словом static, чтобы придать функции внутреннее связывание, ограничивая ее использование одним файлом." Может быть я чего то непонимаю или что-то с компилятором, но у меня ничего не работает. Тут надо написать две функции с одинаковыми именами. Они отличаются только типом возвращаемого значения. |
![]() |
![]() |
![]() |
#5 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
![]()
А вы когда нибудь читать то что выдаёт компилятор будете?
Вот вам вопрос функции должны отличаться сигнатурой функции. Какими сигнатурами они должны отличаться?
Mess with the best, die like the rest.
![]() Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
![]()
Ну тогда так
Код:
Код:
Знающий не говорит, говорящий не знает (С) Лао Цзы
Последний раз редактировалось Krok27; 21.03.2012 в 14:54. Причина: добавил приведение делителя к типу возвр. значения |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
![]()
А если a и b целые числа, тогда в return (a+b)/2; будет отбрасываться дробная часть. Для целых чисел она будет правильно работать а вот для double число будет округляться.
Может быть тут какую-нибудь проверку сделать чтобы знать какой результат должен быть, int или double? Примерно вот так: Если результат должен быть int, то return (a+b)/2, а если double, то return (a+b)/2.0; Последний раз редактировалось Крот; 21.03.2012 в 11:24. |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
![]() Цитата:
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 15.03.2012
Сообщений: 57
|
![]()
Спасибо Krok27 за помощь. Я тут вот что придумал. Буду пространства имен использовать. Так и полегче и сразу видно какую именно функцию использовать.
Код:
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 505
|
![]()
Ога. Можно и так.
Знающий не говорит, говорящий не знает (С) Лао Цзы
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогаем друг другу в поиске музыки | mihali4 | Свободное общение | 56 | 16.02.2017 22:03 |
Привязка окон друг к другу при перетаскивании | Alexxx5800 | Общие вопросы .NET | 2 | 10.10.2010 20:19 |
Данные по столбцам - упорядочить данные к друг другу | PetroD | Microsoft Office Excel | 10 | 07.08.2010 12:30 |
Работа с данными в разных файлах | arc | Microsoft Office Excel | 4 | 28.04.2010 15:15 |