Форум программистов, компьютерный форум, киберфорум
Наши страницы

В чем разница между типом функции и типом возвращаемого значения? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Футбольный турнир по олимпийской системе http://www.cyberforum.ru/cpp-beginners/thread1516749.html
Есть вот такая задачка Нужно сделать футбольный турнир по олимпийской системе (система плей офф) Вводишь количество команд, их название Затем они рандомно образуются в пары И играют между...
C++ Ошибка при чтении из файла Помогите разобраться с чтением из файла. Листинг указан ниже. Программа выполняется полностью, и только перед выполнением последней строки (return 0) выдает ошибку "Необработанное исключение по... http://www.cyberforum.ru/cpp-beginners/thread1516720.html
C++ Вычислить сумму ряда
Вычислить сумму ряда 5 s = ∑ (-1) * i * (x / i!) i=1 Значение x вводится с клавиатуры.
в Visual Studio пишет: отсутствует спецификатор типа-предполагается int.C++ не поддерживает int по умолчанию C++
#include "stdio.h" int factorial(short n); main() { float s, x; short i; int j; scanf("%f", &x); s = 0; for (i=1; i <= 5; i++) {
C++ Функция преобразования температуры из градусов Цельсия в градусы Фаренгейта (задание №5 из С.Прата, глава 2) http://www.cyberforum.ru/cpp-beginners/thread1516675.html
Напишите программу, в которой функция main() вызывает определяемую пользователем функцию, принимающую в качестве аргумента значение температуры по Цельсию и возвращающую эквивалентно значение...
C++ SMFL 2.3.1. sf::Music. Visual Studio 2010 С частью функций по музыке проблем не возникло, все заработало как нужно. ( после бубна, естественно). А часть крутил в циклах в надеждах получить изменения: Высоту(Pitch) от 1 до 44к - без... подробнее

Показать сообщение отдельно
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
19.08.2015, 14:24
Цитата Сообщение от useruser Посмотреть сообщение
Где тип функции?
Давай по пунктам.
1) Ты пишешь функцию:
C++
1
int check_pass (string password);
здесь:
int - это тип возвращаемого значения функции
string - тип аргумента функции.
Здесь понятно?

2) Теперь переходим к типу функции. Вот есть запись:
C++
1
int check_pass (string password);
Это объявление функции. Объявление функции неявно содержит тип функции.
Т.е. задав функцию, ты сразу же задаешь и ее тип, как head-n-shoulders, в одном флаконе.
Явно тип функции записывается так (задается псевдоним типа через typedef):
C++
1
2
3
typedef int func_type(string); // тип функции с именем func_type, функция возвращает int, принимает string
typedef int(*fync_type_p)(string); // тип указателя на функцию fync_type_p
typedef int(&func_type_r)(string); // тип ссылки на функцию fync_type_r
Получить тип функции из определения функции можно также с помощью ключевого слова decltype. Например вот таким образом можно определить функцию, которая принимает другую функцию:
C++
1
2
3
4
5
6
7
8
int func(std::string v)
{
}
 
void func1(decltype(func) f)
{
    f("test");
}
Вот работоспособный пример в онлайн компиляторе: http://rextester.com/JRRAW96132
_____
Еще раз для закрепления: объявление функции неявно в себе содержит тип этой функции.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru