【发布时间】:2019-07-24 08:32:28
【问题描述】:
可以看出,在下面的代码中,参数类型为int 的构造函数被调用。我知道int 在这里很好。但为什么不short? 'A' 的 ASCII 值给出了 short 可以容纳的 65。
在什么条件下调用带有数据类型int的参数的构造函数?
#include<iostream>
class RightData
{
int x;
public:
RightData(short data)
{
cout<< "Short" << endl;
}
RightData(int data)
{
cout<< "Int" << endl;
}
RightData(float data)
{
cout<< "Float" << endl;
}
~RightData()
{
cout<< "Final";
}
};
int main()
{
RightData *ptr = new RightData('A');
return 0;
}
【问题讨论】:
标签: c++ c++11 types constructor overload-resolution