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