Пример из книги Р. Лафоре. Зачем автор написал в прототипе функции параметры без переменной. Какой от этого толк? Есть ли какие-то преимущества такой записи? В чём смысл? Почему нельзя было просто как обычно написать в прототипе (int &num1, int &num2)???
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
void order(int &, int &); //прототип
int n1 = 99, n2 = 11;
int n3 = 22, n4 = 88;
order(n1, n2);
order(n3, n4);
cout << "n1 = " << n1 << endl;
cout << "n2 = " << n2 << endl;
cout << "n3 = " << n3 << endl;
cout << "n4 = " << n4 << endl;
_getch();
return 0;
}
void order(int &num1, int &num2) {
if (num1 > num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
}
Вы можете писать, как с именами параметров, так и без них. В стандарте C++ не указано обязательное наличие имен для параметров в прототипах функций. Преимущества: краткость. Недостатки: сложно понять, зачем нужен тот или иной параметр.
А зачем они в прототипе? Они все равно не используются; все, что нужно знать компилятору - это типы параметров.
Ну, а вот при определении функции, когда вы описываете, что с этими параметрами делаете - без имени не обойтись...
P.S. В объявлении имена могут носить описательный характер - тогда они на своем месте - например, что-то вроде search(int * table_to_search, int element, bool(*equal_func)(int,int))
- ну, чтоб было понятно, что за аргументы передавать в функцию. num1
и num2
никакой дополнительной ясности не вносят...
Виртуальный выделенный сервер (VDS) становится отличным выбором
Имеется приложение, которое выводит содержимое переменной окружения:path
В общем, нашел интересную статью на хабре: https://habrcom/ru/company/mailru/blog/323242/