Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 函数重载解析期间的升级与转换_C++_Overloading - Fatal编程技术网

C++ 函数重载解析期间的升级与转换

C++ 函数重载解析期间的升级与转换,c++,overloading,C++,Overloading,我正在研究函数重载,我读到提升优先于转换。什么是促销,它与转换有何不同 例如: void func(int); //function number 1 void func(double); //function number 2 char a; func(a); // which function will be called, 1 or 2? 也许有人能比我更好地解释这一点,但我可以举个例子 促销类型包括从char到short,或到int,或long(等)。转换类似于从char到double

我正在研究函数重载,我读到提升优先于转换。什么是促销,它与转换有何不同

例如:

void func(int); //function number 1
void func(double); //function number 2
char a;
func(a); // which function will be called, 1 or 2?

也许有人能比我更好地解释这一点,但我可以举个例子

促销类型包括从
char
short
,或到
int
,或
long
(等)。转换类似于从
char
double
double
bool

在您的示例中,当调用
func
时,有两个选项:
func(int)
func(double)
。由于
char
double
是一种转换,而
char
int
是一种升级,因此将调用
func(int)

我建议阅读标准