2010-10-19 2 views
-3

Может ли кто-нибудь дать мне пример перегрузки функций в C++ с помощью 4 прототипов функций? я до сих пор не получить их довольно хорошо ..узнать о прототипах функций и перегрузке функций

извините новичка вопрос, спасибо за глядя в.

Adam Рамадана

+0

похоже домашнее задание. –

+0

nope, 3 или больше, если может хе-хе. : D btw да, у меня есть googled, но я верю, что stackoverflow заставит меня понять это быстрее: D. –

+3

На самом деле, «прототип функции» - это больше термин C. В C++ мы просто говорим «объявление функции». Внутренний стандарт C++ дает четкое различие между декларациями и определениями. – sellibitze

ответ

3

Ниже приведены объявления функций C++ и, как правило, быть в заголовке (.h или .hpp). Эти конкретные декларации не имеют кода. Код находится в определении, показанном ниже.

int sum(int a, int b); 
int sum(int a, int b, int c); 
int sum(int a, int b, int c, int d); 
int sum(int a, int b, int c, int d, int e); 

Вышеуказанные четыре функции имеют одинаковые имена, но компилятор C++ будет вызывать один параметр чья подпись соответствует одному в коде вызова. Цель объявления - сообщить компилятору, что такое тип возврата и сигнатура параметра. Если более чем одна функция имеет одно и то же имя, но отличается своей сигнатурой параметра, она называется перегруженной. Это функция C++, отсутствующая в C. Обратите внимание, что тип возврата не может использоваться для дифференцирования перегруженных функций.

Ниже приведены определения (реализации) перегруженных функций и обычно находятся в файле модуля (.cpp или .cc или .cxx). Это где исполняемый код находится между фигурными скобками {}, которые окружают функциональный блок: пример

int sum(int a, int b) 
{ 
    return (a + b); 
} 

int sum(int a, int b, int c) 
{ 
    return (a + b + c); 
} 

int sum(int a, int b, int c, int d) 
{ 
    return (a + b + c + d); 
} 

int sum(int a, int b, int c, int d, int e) 
{ 
    return (a + b + c + d + e); 
} 

Использования:

std::cout << sum(3, 4, 5) << std::endl; 

будет ссылаться на код второй перегруженной функции, перечисленной выше, которая принимает три int параметры.

+0

и функция? является прототипом функции? .. –

+2

Я редактирую свой ответ, чтобы лучше объяснить этот аспект. –

+0

ОК im, глядя глупо. извините –

Смежные вопросы