函数重载

1. 什么是函数重载

  1. 一组函数,其中函数名相同,参数列表的个数或者类型不同,那么这一组函数就称为函数重载

  2. 一组函数要称得上重载,一定要在同一个作用域中。

    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;
      }
      

      显示结果:

      在这里插入图片描述

    3. const或者volatile的时候

      1. 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代码 产生函数符号的时候是由函数名决定的。

posted @ 2024-04-17 23:17  徐行code  阅读(7)  评论(0编辑  收藏  举报