我们可以看到常用算术转换可以通过使用的typeid()算子的地方(包括在TypeInfo头),它可以用来显示所得类型表达式。
因为短裤是整数,它们经过积分推广到整数前加。添加两个数的结果是int型,像你希望的那样:
INT 9
注意:你的编译器可能会显示一些稍有不同的是typeid的格式。()是由编译器。
让我们来看一看另一个例子:
在此情况下,短期经过积分推广到int的然而,int和double仍不匹配。由于双是较高的类型的层次结构,整数2被转换为双2,和增加一倍,以产生一个双重结果。
双6
在下面的例子中,我们添加了两个短裤:
#include <iostream>
#include <typeinfo> // for typeid()
int main()
{
short a(4);
short b(5);
std::cout << typeid(a + b).name() << " " << a + b << std::endl; // show us the type of a + b
return 0;
}
因为短裤是整数,它们经过积分推广到整数前加。添加两个数的结果是int型,像你希望的那样:
INT 9
注意:你的编译器可能会显示一些稍有不同的是typeid的格式。()是由编译器。
让我们来看一看另一个例子:
#include <iostream>
#include <typeinfo> // for typeid()
int main()
{
double d(4.0);
short s(2);
std::cout << typeid(d + s).name() << " " << d + s << std::endl; // show us the type of d + s
return 0;
}
在此情况下,短期经过积分推广到int的然而,int和double仍不匹配。由于双是较高的类型的层次结构,整数2被转换为双2,和增加一倍,以产生一个双重结果。
双6