Function Overloading


Function Overloading

It is possible to assign the same name to one or more functions as long as the functions take different number of parameters or different parameter data types. When the function is called, the compiler decides which function will be called based its decision on the function data type and data type used when the function is called. In other cases, the decision is based in the number of parameter that the function takes.
Es posible asignarles el mismo nombre a una o más funciones siempre y cuando las funciones tomen diferentes números de parámetros o parámetros con diferentes tipos de datos. Cuando la función es llamada, el compilador decide cual función se llamará basándose en su decisión en el tipo de de datos de la función y el tipo de datos que se usa cuando se llama la función. En otros casos, la decisión también está basada en el número de parámetros de la función.

Problem 1
Compute the table of variables and the output of the code shown. Suppose there is a textbox called tbx1 with the property of multiline.
Calcule la tabla de variables y la salida del código de abajo. Suponga que hay una caja de texto llamada tbx1 con la propiedad de multilínea.

Program.h
#pragma once //______________________________________ Program.h
#include "resource.h"

class Program: public Win::Dialog
{
public:
     Program()
     {
     }
     ~Program()
     {
     }
     double Buy(int count);
     double Buy(double cost);
...
};

Program.cpp
void Program::Window_Open(Win::Event& e)
{
     wstring text;
     const double x = Buy(11.1);
     const double y = Buy(3);
     Sys::Format(text, L"%g, %g", x, y);
     this->Text = text;
}

double Program::Buy(int count)
{
     return 10.0*count;
}

double Program::Buy(double cost)
{
     return 2.0*cost;
}

VariableTableBuy

Problem 2
Compute the table of variables and the output of the code shown. Suppose there is a textbox called tbx1 with the property of multiline.
Calcule la tabla de variables y la salida del código de abajo. Suponga que hay una caja de texto llamada tbx1 con la propiedad de multilínea.

Program.h
#pragma once //______________________________________ Program.h
#include "resource.h"

class Program: public Win::Dialog
{
public:
     Program()
     {
     }
     ~Program()
     {
     }
     double Buy(int count);
     double Buy(wstring name);
...
};

Program.cpp
void Program::Window_Open(Win::Event& e)
{
     wstring text;
     const double x = Buy(L"car");
     const double y = Buy(3);
     Sys::Format(text, L"%g, %g, %g", x, y, Buy(L"computer"));
     this->MessageBox(text, L"Program", MB_OK);
}

double Program::Buy(int count)
{
     if (count%4 == 0) return 11.0*count;
     return 12.0*count;
}

double Program::Buy(wstring name)
{
     if (name == L"car") return 22000.50;
     if (name == L"shoes") return 47.00;
     return 99.87;
}

VariableTableBuy

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home