Перегруженные функции

Языки 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%

Внимание! Если вы хотите обменяться постовыми с моим блогом почитайте эту статью.

Оставить комментарий