重载是C++新增的机制,将语义和功能相似的函数用同一个名字表示,提高函数的通用性。
重载
特征:
(1)相同范围
(2)函数名相同
(3)参数不同
(4)virtual可有可无
全局函数和成员函数即使名称和参数相同,两者也是互不干扰。
在同一范围内,各种参数类型的MyPrint
函数都可以直接调用,只要明确实参的类型即可。
#include <iostream>
using namespace std;
void MyPrint(int num)
{
cout << "int: " << num << endl;
}
void MyPrint(float num)
{
cout << "float: " << num << endl;
}
class Test
{
public:
void MyPrint(int num) {
cout << "class int: " << num << endl;}
void MyPrint(float num) {
cout << "class float: " << num << endl;}
void MyPrint(char num) {
cout << "class char: " << num << endl;}
};
int main(void)
{
MyPrint(1); // int: 1
MyPrint(1.1f); // float: 1 浮点型必须要显式类型,否则编译器不知道该转换为int还是float。
Test test1;
test1.MyPrint(2); // class int: 2
test1.<