当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

C++Builder函数重载

    两个以上的函数,取同一个名字,只要使用不同类型的参数或参数个数不同,编译器便知道在什么情况下该调用哪个函数,这被称为函数重载。
    为什么要引入函数重载,可以通过一个例子来说明。有三个函数: 


    ·lsubtract()  整数相减。
    ·dsubtract()  实数相减。
    ·fsubtract()  浮点数相减。
    若用C语言来处理,必须给三个函数规定三个不同的函数名。程序员使用这些函数完成两个变量之间的减法时,必须调用合适的函数,也就是说,程序员必须记忆的是三个函数,而不是一个函数。


    在面向对象程序设计中,由于它支持重载,所以用C++Builder处理时,虽然给这三个函数取相同的名字subtract,但它们的参数类型是不同的。当程序员调用此函数时,只需要在其中带入实参,编译器就会根据实参类型来确定到底调用哪个重载函数。因此,记住subtract是将两个参量相减的函数,剩下的则是系统的事情。上述例子可以用下面的程序来实现。
    [例1]重载函数的使用。
    #include<iostream.h>
    //定义两个整数相减
    int  subtract(int x,int y)
    {
    return x—y;
    }

    int subtract(float x,float y)
    (
    return x—Y;
    )
    //定义两个双精度数相减
    int subtract(double x,double y)
    {
    return x—Y;
    }
    void main()
    {   
    int i=36,J=10;
    float xl=4.9,yl=1.5;
    double x2=675.5,y2=35.7;
    cout<<subtract(i,J)<<endl;
    cout<<subtract(xl,y1)<<endl;
    cout<<subtract(x2,y2)<<endl;
    }
    在main中的subtract函数的三次调用,实际上是调用三个不同的重载版本,由系统根据传递的不同参数类型来决定调用哪个重载版本。例如,subtract(i,j),因为i,J为整型变量,所以当执行到此处时,系统将调用两个整数相减的重载版本int subtract(int,int)。从上面可有看出,利用重载概念,程序员在调用函数时,书写非常方便。

相关内容
赞助商链接