我问的是C++中函数的静态绑定.什么是函数绑定的数据类型转换规则.
假设我们有
void func(int x);
void func(long x);
void func(float x);
void func(double x);
void func(char x);
Run Code Online (Sandbox Code Playgroud)
我在main中有一个功能
func(1)
Run Code Online (Sandbox Code Playgroud)
我知道函数func(int x)将被调用.我很好奇这个规则.
它始终是最佳匹配吗?
申报的顺序是否重要?
在任何情况下都会应用数据类型转换?
规则设计时的关注点是什么?
它始终是最佳匹配吗?
是的:1是的int.如果存在适当的重载,则将采用它,因为这最小化了必要的隐式转换的数量(无).
申报的顺序是否重要?
不可以.但是,在调用之前是否已声明函数很重要.如果在调用之后声明了该函数,则不会考虑重载解析.
在任何情况下都会应用数据类型转换?
这里没有转换因为int是完全匹配.转换只有在没有完全匹配时才会发挥作用.
规则设计时的关注点是什么?
嗯,这是唯一有意义的规则,不是吗?
| 归档时间: |
|
| 查看次数: |
519 次 |
| 最近记录: |