1. 什么是函数重载
- 一组函数,其中函数名相同,参数列表的个数或者类型不同,那么这一组函数就称为函数重载
- 一组函数要称得上重载,一定要在同一个作用域中。
- 同一作用域
显示结果:#include <iostream> #include <cstring> using namespace std; bool compare(int a, int b) { cout << "int int" << endl; return a > b; } bool compare(double a, double b) { cout << "double double" << endl; return a > b; } int main(){ compare(10, 20); compare(10.2, 40.2); return 0; }
2. 不同作用域
显示结果:#include <iostream> #include <cstring> using namespace std; bool compare(int a, int b) { cout << "int int" << endl; return a > b; } bool compare(double a, double b) { cout << "double double" << endl; return a > b; } bool compare(const char* a, const char* b) { cout << "const char* const char*" << endl; return a > b; } int main(){ bool compare(int, int); compare(10, 20); compare(10.2, 40.2); compare("abcd", "efgh"); return 0; }
- const或者volatile的时候
- const情况下:
显示结果:void func(int a) { cout << "int" << endl; } void func(const int a) { cout << "const int" << endl; } int main() { int a = 10; func(a); const int b = 99; func(b); return 0; }
- const情况下:
C++和C
01. C不支持函数重载
C++代码产生函数符号的时候,是由函数名+参数列表组成的
C代码 产生函数符号的时候是由函数名决定的。