我正在学习功能重载,我读过升级优先于转换。什么是晋升,它与转换有何不同?
例如:
void func(int); //function number 1
void func(double); //function number 2
char a;
func(a); // which function will be called, 1 or 2?发布于 2021-01-09 04:27:38
也许有人能比我更好地解释这一点,但我可以举个例子。
晋升是从char到short,或者int,或者long (等等)。转换是像char到double或double到bool这样的事情。
在您的示例中,当调用func时,有两个选项:func(int)和func(double)。因为char到double是一种转换,而char到int是一种提升,那么func(int)就会被调用。
我建议阅读标准的[conv]。
https://stackoverflow.com/questions/64905763
复制相似问题