Главная » C++ энциклопедия » А » Аргументы
Категория: C++ энциклопедия » А
  • 0

13 дек 2011

Автор: admin

Две функции с одинаковыми именами считаются разными, если они отличаются по количеству, порядку или типу аргументов.

void Fn();
void Fn(int);
void Fn(long);   //  Можно, если типы long и int отличаются размером
int Fn(int);    // Нельзя – отличается только тип возвращаемого значения
int Fn(char*);   //  Можно, отличаются аргументы
void Fn(int, char*);
void Fn(char*, int);  // Можно, аргументы следуют в другом порядке
void Fn(char* s, int x, int y = 17);  // Можно – три аргумента вместо двух
Fn(“hello”, 17);  // Ошибка – совпадают две сигнатуры


Пока аргументы отличаются, компилятор не жалуется на изменение возвращаемого типа. Инициализация по умолчанию (такая как у=17) может присутствовать при объявлении функции, хотя позднее она может стать причиной неоднозначности при вызове функции (как в последней строке
примера).
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.