165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
|
||||||
1 | ||||||
В чем разница между типом функции и типом возвращаемого значения?19.08.2015, 08:48. Показов 3970. Ответов 39
Метки нет (Все метки)
Читаю статью
https:// code-live. ru/post/cpp-functions/ (ссылку изменил дабы не делать рекламу) Там написано - Любая функция имеет тип, также, как и любая переменная. - Функция может возвращать значение, тип которого в большинстве случаев аналогично типу самой функции. Пример -----------------------------
Я этот код вижу так тип_возвращаемого_значения имя_функции (тип_аргумента аргумент_функции) { тело_функции возвращаемое_значение_согласно_типу_возвращаемого_значения } Что такое тип функции (он тут есть?), в чем разница между типом функции и типом возвращаемого значения и как тип функции и тип возвращаемого значения могут различаться?
0
|
19.08.2015, 08:48 | |
Ответы с готовыми решениями:
39
Нужно сделать чтобы можно было управлять типом возвращаемого значения функции Сложности с типом возвращаемого значения Серийного номера Почему ковариантный тип может быть только типом возвращаемого значения метода? Нужно переменной с типом real присвоить выражение a1 mod 2, где a1 - это переменная с типом integer. |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
19.08.2015, 08:54 | 2 | |||||
в вашей терминологии тип функции имеет вид:
тип_возвращаемого_значения(тип_аргумента); пример:
0
|
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
|
|
19.08.2015, 09:09 [ТС] | 4 |
Извините, не понял.
Исходя из написанного в статье делаю вывод - Есть тип функции и тип возвращаемого значения. Т.е. 2 объекта, образно выражаясь. В чем между ними разница и где один из объектов? Я нашел только тип_возвращаемого_значения. Предположу - может и нет никакого типа функции и в статье ошибка? Добавлено через 1 минуту Откуда вы это взяли? В коде этого нет. Выше нигде не описано. Я что-то упустил. Код перед вами.
0
|
19.08.2015, 10:00 | 5 | |||||||||||||||
Это такой тонкий троллинг? А вот этот код в первом посте кто разместил?
Сразу оговорюсь указатель можно опустить, потому как для функций, что указатель на нее что ее тип трактуется одинаково. Т.е. вызов равносилен:
0
|
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
|
|
19.08.2015, 10:11 [ТС] | 6 |
Нет. Даже не думал.
Я разместил. Вот этого в моём коде нет. Всё равно не понимаю. Вопрос простой. Где в моём коде тип функции. В моём коде, не в вашем. В моём коде есть функция - зачит должен быть указан её тип. Где он указан? Номер строки, ключевое слово... В этом коде я ищу 2 объекта. Один тип возвращаемого значения, другой тип функции. Где они? Тип возвращаемого значения - предполагаю, что string т.к. string check_pass. Где тип функции? Я не вижу строки типа string string check_pass. Возможно не существует никакого типа функции, а есть только тип возвращаемого значения?
0
|
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
||||||
19.08.2015, 10:23 | 7 | |||||
Тип функции определяется типом возвращаемого значения и типом аргументов функции.
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
19.08.2015, 10:26 | 8 |
0
|
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
|
19.08.2015, 10:26 | 9 |
Тип функции задаётся неявно при её объявлении. В отличии от обычных типов, когда объявление выглядит как <тип> <имя объекта>, для функций порядок другой: <тип возв. значения> <имя функции>(<тип аргумента1>, <тип аргумента2>, ..., <тип аргументаN>)
0
|
19.08.2015, 10:54 | 10 | |||||
Вам уже несколько раз написали одно и тоже. В коде:
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
19.08.2015, 11:09 | 11 |
Ваша ошибка заключается в том, что вы читаете статью непроверенного автора и полностью ей доверяете. Я уже писал как-то, что важно не только что сказано, но и кем сказано. Предпочтение нужно отдавать книгам умных и авторитетных авторов.
Это ложь и глупость. Книжки читайте.
2
|
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
|
|
19.08.2015, 11:31 [ТС] | 12 |
Я не вижу в коде тип функции. Я не вижу ключевого слова.
Напишите string string check_pass (string password) и вопросов нет. Вот тебе 2 типа, имя функции и т.д. 2 типа. Но тут 1 тип, одно слово string. Понимаете? Где второе слово? Его нет. Если одно слово string определяет и тип функции и тип возвращаемого значения, то как в этом случае будет запись когда тип функции и тип возвращаемого значения - разный? PS Возникают ещё вопросы Зачем вообще нужен тип функции? Функция по сути - набор кода. У него (неё) не может быть типа. Там объекты разных типов. А вот тип возвращаемого значения нужен - мы должны знать данные какого типа мы возвращаем т.к. язык С++ язык с явной типизацией. Добавлено через 2 минуты Если бы я доверял, разве я бы спросил вас (на форуме)? Тот кто доверяет - тот не проверяет. ) Я пытаюсь понять, спрашиваю...
0
|
19.08.2015, 11:53 | 13 |
Не пытаетесь...
Тип функции и тип возвращаемого значения это немного из разных песочниц. В тип функции входит тип возвращаемого значения, типы входящих параметров и квалификаторы (const, volatile и т.д.). Они по определению разные и не могут совпадать никогда. Для вызова функции следует поместить параметры в стек и сохранить точку вызова. Но число параметров может быть произвольным. Как тогда узнать адреса переданных в стек переменных и вернуться в точку вызова при завершении работы функции? Аналогично возвращаемые значения. Более подробно см. ассемблер.
0
|
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
|
|
19.08.2015, 12:29 [ТС] | 14 |
Вы хотите сказать, что тип функции не важен, не указывается и определяется размером наибольшего типа аргумента (аргументов) в байтах?
bool true_or_false (int a){} //Тип возвращаемого значения bool, тип функции int т.к. int 4 байт, а bool 1. int func(int a){} //Одинаковые типы. Ну и в статье написано, хотя я не сильно ей доверяю, но всё же
0
|
19.08.2015, 12:41 | 15 |
Тип функции int(int) тип возвращаемого значени int.
Этот бред вообще боюсь комментировать... Еще раз тип функции это правило для компилятора как располагать переменные в стеке перед вызовом процедуры, как с ними работать и как возвращать значение из функции.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
19.08.2015, 12:43 | 16 |
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
19.08.2015, 12:43 | 17 |
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
19.08.2015, 12:49 | 19 | |||||
ложь.
string(string) неявно может каститься к string (*) (string), но это два принципиально разных типа Добавлено через 51 секунду Гайка, давай будем:
0
|
19.08.2015, 12:58 | 20 | |||||
hoggy, ошибаетесь коллега. Вы передаете временую переменную по неконстантной ссылке, что есть запрещено в С++ для любых типов. Попробуйте так:
0
|
19.08.2015, 12:58 | |
19.08.2015, 12:58 | |
Помогаю со студенческими работами здесь
20
Преобразовать массив с типом char в массив с типом int Передача значения с типом DateTime в метод В чем смысл создания шаблона с заранее известным передаваемым типом Нужно перевести переменную с типом данных string в переменную с типом данных REAL Перевод значения переменной с типом string в time Присвоение значения полю с логическим типом в отчёте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |