Увод у преоптерећење функција у Ц ++

Ц ++ програмирање има невероватне карактеристике, а једна од најважнијих карактеристика је преоптерећење функција. То значи код који има више функција са истим именом, али са различитим списковима аргумената. Листа аргумената значи слијед аргумената и врсте података аргумената. Преоптерећење функције користи се за извођење сличних операција. Користи се за побољшање читљивости кода. Редефинирао је функцију јер нема смисла стварати двије различите функције за извођење истог посла изнова и изнова.

Синтакса

void add(int a, int b);
void add(float a, float b);

Оба су иста функција, али аргументи су различити. Дакле, у случају да желите извршити додавање на различитим типовима података користећи исту функцију, тада се функција функцијског преоптерећења може користити у програмирању са Ц ++.

Ево Ц ++ кода за демонстрирање преоптерећења функција у Ц ++ програмирању:

Шифра:

#include
using namespace std;
void print(int x) (
cout << " Here is the integer " << x << endl;
)
void print(double y) (
cout << " Here is the float " << y << endl;
)
void print(char const *v) (
cout << " Here is the character* " << v << endl;
)
int main() (
print(20);
print(20.30);
print("three");
return 0;
)

Различити начини преоптерећења функције у Ц ++

Постоји неколико начина за преоптерећење функције у програмском језику Ц ++. Да видимо како то можемо:

1. Функција Преоптерећење

Користите за повећање читљивости кода у програмирању. Може се дефинисати као преоптерећење 2 или више функција са истим називом, али различити параметри су познати као Фунцтион оверлоадинг.

Синтакса:

DataType Functionname (parameter list)
(
Function body
)

Пример # 1

Ево Ц ++ кода за демонстрирање преоптерећења функција променом броја аргумената у Ц ++ програмирању:

Шифра:

#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)

Пример бр. 2

Ево Ц ++ кода за демонстрирање преоптерећења функција коришћењем различитих врста аргумената у Ц ++ програмирању:

Шифра:

#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)

2. Преоптерећење оператера

Постоји неколико уграђених оператора на програмском језику Ц ++. Кодер може користити ове операторе за преоптерећење или редефинирање ових уграђених оператора. То је полиморфизам у компајлираном времену у коме се преоптерећени оператор користи за обављање задатака на типовима података дефинисаним од стране корисника. Скоро многи оператори могу бити преоптерећени програмским језиком Ц ++.

Синтакса:

ReturnType Classname :: operator OperatorSymbol (parameter list)
(
Function body
)

Пример # 1

Ево Ц ++ кода за демонстрирање оператора преоптерећења у Ц ++ програмирању:

Шифра:

#include
using namespace std;
class Demo
(
private:
int count;
public:
Demo(): count(5)()
void operator ++()
(
count = count+1;
)
void DisplayCount() ( cout<<"The Count is : "< );
int main()
(
Demo d;
// this calls void operator ++()" function
++d;
d.DisplayCount();
return 0;
)
#include
using namespace std;
class Demo
(
private:
int count;
public:
Demo(): count(5)()
void operator ++()
(
count = count+1;
)
void DisplayCount() ( cout<<"The Count is : "< );
int main()
(
Demo d;
// this calls void operator ++()" function
++d;
d.DisplayCount();
return 0;
)

Пример бр. 2

Да видимо како у ствари функционише преоптерећење функција? у програмирању кроз Ц ++ примјере кодирања:

Шифра:

#include
using namespace std;
void show(int);
void show(float);
void show(int, float);
int main() (
int x = 10;
float y = 255.5;
show(x);
show(y);
show(x, y);
return 0;
)
void show(int variable) (
cout << "The Integer number is : " << variable << endl;
)
void show(float variable) (
cout << "The Float number is: " << variable << endl;
)
void show(int variable1, float variable2) (
cout << "The Integer number is: " << variable1;
cout << " And The Float number is:" << variable2;
)

Објашњење кода:

У горњем коду смо направили функцију за приказ резултата различитих типова података, али ако приметите да је име функција исто, а аргументи различити. Затим смо иницијализирали променљиву која се зове к и додељена јој је вредност и нека вредност додељена и плутајућој променљивој и. Након додељивања вредности к и и променљивим, позвали смо функцију која је приказана за приказ улазне вредности на излазном екрану.

Као што можете видети имена функција, али аргумент је различит у сва три случаја. Прво смо позвали функцију само прикази целе варијабле, након чега смо позвали схов функцију да приказује излаз само за флоат варијаблу. На крају, назвали смо схов функцију која има и целобројне и пловне варијабле да би приказала излаз на екрану као излаз.

Овако функционише функција преоптерећења на програмском језику Ц ++. У зависности од различитих типова података, иста функција се може користити за извођење сличног скупа операција.

Пример # 3

Ево Ц ++ кода за демонстрирање преоптерећења функције у Ц ++ програмирању:

Шифра:

#include
using namespace std;
class X
( int x;
public:
X()()
X(int j)
(
x=j;
)
void operator+(X);
void display();
);
void X :: operator+(X a)
(
int n = x+ax;
cout<<"The addition of two objects is : "< )
int main()
(
X a1(505);
X a2(409);
a1+a2;
return 0;
)
#include
using namespace std;
class X
( int x;
public:
X()()
X(int j)
(
x=j;
)
void operator+(X);
void display();
);
void X :: operator+(X a)
(
int n = x+ax;
cout<<"The addition of two objects is : "< )
int main()
(
X a1(505);
X a2(409);
a1+a2;
return 0;
)

Објашњење кода:

У горе наведеном коду креирали смо класу Кс и створили целобројну променљиву к, а затим декларирали два конструктора тако да не морамо стварати објекте за позивање функције јер конструктор аутоматски иницијализира ново креирани објект класе тек након што је додељена меморија . Две функције су креиране као оператер и приказују се за приказивање два објекта користећи концепте преоптерећења функција у нашем коду.

Закључак

Закључно, функција преоптерећења функције у Ц ++ може се користити на више начина како би се повећала читљивост кода. Помаже у уштеди простора у меморији као и времену компилације током програмирања на језику Ц ++. Концепт полиморфизма у компиларном времену такође се уводи кроз концепте преоптерећења оператора где скоро сваки оператор може бити преоптерећен.

Препоручени чланци

Ово је водич за преоптерећење функције у Ц ++. Овде смо размотрили различите начине преоптерећења функције у Ц ++ заједно са различитим примерима и имплементацијом кода. Такође можете погледати следећи чланак да бисте сазнали више -

  1. Како дјелује рекурзивна функција у Ц ++?
  2. Топ 3 врсте података у Ц ++
  3. Примери преоптерећења и прегласавања у Ц ++
  4. Низ низова у Ц ++ низу више низа

Категорија: