在同一个作用域中,可以为同一个函数名具有多个定义。函数的定义必须在参数列表中的参数类型和/或数量上彼此不同。您不能重载仅在返回类型上有所不同的函数声明。
函数重载基本上是编译时多态。它检查功能签名。如果签名不相同,则可以重载它们。函数的返回类型不会对函数重载产生任何影响。具有不同返回类型的相同函数签名将不会被重载。
以下是使用相同功能print()
打印不同数据类型的示例
#include <iostream> using namespace std; class printData { public: void print(int i) { cout << "Printing int: " << i << endl; } void print(double f) { cout << "Printing float: " << f << endl; } void print(char* c) { cout << "Printing character: " << c << endl; } }; int main(void) { printData pd; pd.print(5); // Call print to print integer pd.print(500.263); // Call print to print float pd.print("Hello C++"); // Call print to print character return 0; }
输出结果
Printing int: 5 Printing float: 500.263 Printing character: Hello C++