§8.1多态性的基本概念 ◆本章重点 重载:函数重载,运算符重载静态绑定 虚函数:抽象类 动态绑定
§8.1 多态性的基本概念 本章重点 重载:函数重载,运算符重载 静态绑定 虚函数:抽象类 动态绑定
§8.2函数重载 ◆函数重载(函数名相同,函数参数不同) void print(char) void print(int, int) void print(float) void print(char ) ◆函数调用 print( Hello, overload! print(3, 5)
§8.2 函数重载 函数重载(函数名相同,函数参数不同) – void print(char); – void print(int, int); – void print(float); – void print(char *); –…… 函数调用 – print(“Hello,overload!”); – print(3, 5);
§8.2函数重载 ◆类构造函数的重载 class A public A(); a(int) A(char c); Aa(34)
§8.2 函数重载 类构造函数的重载 class A { public: A( ); A(int); A(char c); //…… }; A aa(34);
§8.2函数重载 函数重载的注意事项 (1)参数不同,是指参数的个数,参数的类型不同 (2)只有返回值类型不同,不是函数重载 (3)不要用重载函数描述毫不相干的函数 (4)在重载函数中使用缺省参数时应注意二义性问题
§8.2 函数重载 函数重载的注意事项 ⑴ 参数不同,是指参数的个数,参数的类型不同 ⑵ 只有返回值类型不同,不是函数重载 ⑶ 不要用重载函数描述毫不相干的函数 ⑷ 在重载函数中使用缺省参数时应注意二义性问题
§8.2函数重载 t] void print(int a, int b) void print(int a, int b, int c) 函数说明: void print(inta,intb,intc=50) 函数调用: print(10,100);/eror!系统不知调用哪个函数
§8.2 函数重载 例: void print(int a, int b) { …… } void print(int a, int b, int c) { …… } 函数说明:void print(int a, int b, int c=50); 函数调用:print(10, 100); //error! 系统不知调用哪个函数