1.1.4 编译器调用重载函数的规则
对于重载函数:
void ShowMessage(const char* Text , int Type) |
{ |
Message: Text=ok,Type=1 |
因为对参数个数相同的重载函数进行调用时,编译器依次使用下面的规则将实参与形参进行匹配,确定重载函数的调用。
(1)具有与实参类型相同的形参的重载函数。
(2)转换实参,将T转换为T&,或T&转换为T,或T转换为const T,然后寻找形参类型匹配的重载函数(T为某数据类型)。
(3)实参进行标准的类型转换,如char→int→unsigned int,然后寻找形参类型匹配的重载函数。
(4)使用构造函数转换实参,使其与某一重载函数匹配。例如,如果类A有构造函数A(int),那么int型的实参可以被编译器转换为类A的临时对象。
(5)使用类型转换函数进行转换,使其与某一重载函数匹配。
显然,上述例子符合第3种情况。又如对于重载函数:
void ShowMessage(const char* Text ,const char* Caption) void ShowMessage(const char* Text ,unsigned int Type) |
ShowMessage("ok",0);
|
【责任编辑:夏书 TEL:(010)68476606】
| 回书目 上一节 下一节 |