戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

C++学习复习笔记04 – 函数重载

日期:2015年8月5日 作者: 分类:编程 阅读:521

重载函数是函数的一种特殊情况,为方便使用,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);

//所以顺序的不同是按照参数的类型来分的

标签:

除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址

本文地址:https://wanglu.info/909.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注