C++学习复习笔记04 – 函数重载
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。
知识要点:
1) 独立函数重载
2) 类中非构造函数重载
3) 类中构造函数重载
4) 析构函数不能重载,因为系统自动调用,无法传递参数.
代码示例:
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
    string name;
    int age;
public:
    /* 类中构造函数重载 */
    Person()
    {
        cout << "默认调用原始构造函数" << endl;                         
    }     
    // 构造函数一经重写,系统默认的无参数的将不复存在,若要使用得写出来     
    Person(string name, int age)     
    {         
        this->name = name;
        this->age = age;
        cout << this->name << "调用重载的构造函数" << endl;
    }
    /* 类中非构造函数重载 */
    void display()
    {
        cout << "-----> " << this->name << " : " << this->age << endl;
    }
    void display(string msg)
    {
        cout << msg << endl;
    }
};
/* 独立函数重载 */
void run()
{
    cout << "快跑!!!" << endl;
}
void run(Person p)
{
    cout << p.name << "快跑!!!" << endl;
}
int main()
{
    Person wuxie;
    wuxie.name = "吴邪";
    wuxie.age = 20;
    cout << "-----------" << endl;
    Person xiaoge("小哥", 22);
    cout << "-----------" << endl;
    cout << endl;
    run();
    cout << "-----------" << endl;
    run(wuxie);
    cout << "-----------" << endl;
    cout << endl;
    xiaoge.display();
    xiaoge.display("小哥叫闷油瓶");
    return 0;
}
>>>>>程序运行结果,请自行调试
总结:函数重载实现的条件是函数名必须相同、参数列表必须不同(包括顺序不同和参数个数不同)、返回值可以相同可以不同。
关于参数列表的顺序
void display(string name, string msg); void display(string msg, string name); //上面两个不能重载,因为它们实际都是下面这个 void display(string, string); //下面两个可以重载 void display(string name, int age); void display(int age, string name); //所以顺序的不同是按照参数的类型来分的
除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址