c++函数重载

1.函数重载(函数多态)指的是可以有多个同名的函数,因此对函数进行重载。函数多态和函数重载指的是同一回事,但是我们通常用函数重载。

2.函数重载的条件:要么函数的参数类型不同,要么函数的参数个数不同,或者都不同。

3.注意: 

double cube(double x);
double cube(double & x); //这两种是不能重载的
long gronk(int n, float m);
double gronk(int n, float m);//不能重载,因为函数的参数类型和个数都完全一模一样,不管返回值是否一致,只要函数参数和个数一致,就不能重载
4.重载实例:

下例中的left函数重载了,在第一个left函数中,找出一串数字的前n个数字,在第二个left函数中,找出一串字符的前n个字符

#include <iostream>
using namespace std;

long left(long num, int n);
char * left(char * str, int bit);

int main()
{
    long num, result1;
    int bit1, bit2;
    char * str, * result2;
    cout << "Enter a number: ";
    cin >> num;
    cout << "Enter the bit: ";
    cin >> bit1;
    result1 = left(num, bit1);
    cout << result1 << endl;

    cout << endl << "Enter a string: ";
    cin >> str;
    cout << "Enter the bit: ";
    cin >> bit2;
    result2 = left(str, bit2);
    cout << result2 << endl;
    return 0;
}

long left(long num, int bit)
{
    int digits = 1;
    long n = num;
    if(num == 0 || bit == 0)
        return 0;
    while(n /= 10)
        digits++;
    if(digits > bit)
    {
        bit = digits - bit;
        while(bit--)
            num /= 10;
        return num;
    }
    else
        return num;
}

char * left(char * str, int bit)
{
    int i;
    char * p = new char[bit + 1];
    for(i = 0; i < bit && str[i]; i ++)
        p[i] = str[i];
    while(i <= bit)
        p[i++] = ‘\0‘;
    return p;
}
运行结果:

c++函数重载


c++函数重载,布布扣,bubuko.com

c++函数重载

上一篇:Java使用junit进行单元测试


下一篇:head first设计模式之单例模式 c++解读