3
4
6
int max(int a, int b)
{
    return a > b ? a : b;
}
int main()
{
    int a = 300;
    int b = 400;
    std::cout << "max(300, 400) = " << max(a, b) << std::endl;
    double c = 14.8;
    double d = 21.5;
    std::cout << "max(14.8, 21.5) = " << max(c, d) << std::endl;
}
max(300, 400) → 400
max(14, 21) → 21
double max(double a, double b)
{
    return a > b ? a : b;
}
7
int max(int a, int b)
{
    return a > b ? a : b;
}
int main()
{
    int a = 300;
    int b = 400;
    std::cout << "max(300, 400) = " << max(a, b) << std::endl;
    double c = 14.8;
    double d = 21.5;
    std::cout << "max(14.8, 21.5) = " << max(c, d) << std::endl;
}
max(300, 400) → 400 max(14.8, 21.5) → 21.5
8
9
int max(int a, int b)
{
    return a > b ? a : b;
}
template <typename T>
T max(T a, T b)
{
    return a > b ? a : b;
}
10
template <typename T>
T max(T a, T b)
{
    return a > b ? a : b;
}
max<int>(a, b)
max<double>(c, d)
max(a, b)
max(c, d)
max<int>(a, b)
int max(int a, int b)
{
    return a > b ? a : b;
}
T = int
max<double>(c, d)
double max(double a, double b)
{
    return a > b ? a : b;
}
T = double
12
class Calc
{
public:
    int add(int x, int y);
    int multiply(int x, int y);
};
int Calc::add(int x, int y)
{
    return x + y;
}
int Calc::multiply(int x, int y)
{
    return x * y;
}
int main()
{
    Calc c;
    cout << c.add(3, 4) << endl;
    cout << c.multiply(7, 8) << endl;
    cout << c.add(5.41, 7.65) << endl;
    cout << c.multiply(3.14, 4.5) << endl;
}
template <typename T>
class Calc
{
public:
    T add(T x, T y);
    T multiply(T x, T y);
};
template <typename T>
T Calc<T>::add(T x, T y)
{
    return x + y;
}
template <typename T>
T Calc<T>::multiply(T x, T y)
{
    return x * y;
}
13
int main()
{
    Calc<int> intCalc;
    cout << intCalc.add(3, 4) << endl;
    cout << intCalc.multiply(7, 8) << endl;
    Calc<double> doubleCalc;
    cout << doubleCalc.add(5.41, 7.65) << endl;
    cout << doubleCalc.multiply(3.14, 4.5) << endl;
}

C++ Programming - 14th Study