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); //所以顺序的不同是按照参数的类型来分的
除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址