C++ 函数重载 Function overloading

12 阅读1分钟

C++的函数重载就是静态多态。

静态多态的意思是在编译器确定了多态的具体处理。 函数重载会在编译时,根据调用函数时传入的参数,直接确定要调用哪个重载函数版本。编译阶段就会将之确定好。

函数重载,在同一作用域,定义多个同名函数,但函数入参列表必须不同。在实际代码处理过程中,会在编译阶段根据入参类型决定采用哪个函数。

函数重载实现的底层原理是:编译器是将函数名与入参列表综合处理成实际的函数名。

函数重载的关键:函数名相同,入参列表不同。

函数重载的应用场景:

    //简化函数
    int add(int a, int b) {return a+b;}
    double add(double a, double b) {return a+b;}

    //对类的构造函数进行重载,以不同方式构建初始化对象
    class Person{
        public:
            //无参构造
            Person() { name = "未知";age = 0; }
            //单参数构造
            Person(string n) { name = n; age = 0; }
            //双参数构造
            Person(string n, int a) { name = n; age = a; }
        private:
            string name;
            int age;
    };

综上:

**函数重载(静态多态) **

  • Name Mangling;

  • 函数名相同,入参列表不同。