函数重载
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; }
显示结果:
-
不同作用域
#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; }
显示结果:
-
-
C++和C
01. C不支持函数重载
C++代码产生函数符号的时候,是由函数名+参数列表组成的
C代码 产生函数符号的时候是由函数名决定的。