Перегруженные функции
Posted in C++ on 16. Фев, 2011
Языки C++, C++/CLI и С# позволяют определять в программе несколько функций с одним и тем же именем. Такие функции удобны и широко применяются в объектно-ориентированном программировании, когда надо выполнить аналогичные операции над данными разных типов. Подобные функции называются перегруженными функциями. Имея одно и то же имя, перегруженные функции отличаются количеством или типом параметров.
Пример 4.8.1. Перегруженные функции swap (int &, int &) и swap (bool &,
bool&).
Illlllllllllllllllll II C+ + /CLI
#include “stdafx.h”
using namespace System; // Использовать пространство имён System
void swap (int &a, int &b) // Целочисленные параметры {
int c=a;
a=b;
b=c; }
void swap (bool &a, bool &b) // Булевские параметры
{
bool c=a;
a=b;
b=c; >
void main () {
int x=l, y=2;
System: :Console::Writel_ine (”x= ” + x.ToString()+ ” y= ” + y.ToStringO);
swap (x, y);
System;:Console::WriteLine (”x= ” + x.ToString()+ ” y= ” + y.ToStringO);
bool m=true, n=false;
System: :Console::WrlteLine (”m= ” + m + ” n= ” + n); swap (m, n);
System: :Console::Writeline (”m= ” + m + ” n= ” + n); >
56
/* Result:
x=ly=2 x=2y=l m=True n=False m=False n=True */
Компилятор при вызове функции по типу и количеству параметров определяет, с каким телом надо вызвать функцию.
Итак, критерий выбора – количество и тип параметров (аргументов). Если нет точного совпадения, то компилятор выбирает ту функцию, при вызове которой проще всего выполнить для аргументов преобразования типов. Перегружаемые функции не могут отличаться только по типу возвращаемого значения.
Быть чистым достаточно важно для каждого человека, когда ванная уже не приносит много радости, в самый раз сауна и(или) баня, расслабиться в горячей бане с естественным паром истинное удовольствие.
Популярность: 1%
Внимание! Если вы хотите обменяться постовыми с моим блогом почитайте эту статью.