函数重载

维基百科,自由的百科全书
跳转至: 导航搜索

函数重载(Function overloading),是AdaC++C#、D和Java编程语言中具有的一项特性,这项特性允许创建数项名称相同但功能的输入输出类型不同的子程序,它可以简单地称为一个单独功能可以执行多项任务的能力。


函数重载规律[编辑]

构造器重载[编辑]

注意事项[编辑]

对于名字屏蔽英语name masking,C++规定不存在跨作用域(scope)的名字重载。即内层作用域的函数名字将屏蔽掉外层作用域的同名函数名字。

C++子类型的成员函数名将屏蔽其基类型的同名成员函数名,即被继承类与派生类的同名成员函数名不构成函数名重载。除非在子类型中用using关键字显式引入基类型的成员函数名。

class B {
public:
    void f(int i);
};
 
class D : public B {
public:
    using B::f;
    void f(double d);
};
 
class B {
public:
    void f(int i);
};
 
class D : public B {
public:
    using B::f;
    void f(double d);
};

另见[编辑]

参考[编辑]


外部链接[编辑]

  • Bertrand Meyer: Overloading vs Object Technology, in Journal of Object-Oriented Programming (JOOP), vol. 14, no. 4, October-November 2001, available online