- 一、类型转换简介
- 二、示例
- 1.隐式类型转换
- 2.强制类型转换
一、类型转换简介
C++中类型转换从形式上可分为显式和隐式两种。
隐式类型转换则是由编译器自动完成类型转换过程,可以分为内置数据类型转换和自定义数据类型转换。
显式的类型转换通常使用强制类型转换操作符如static_cast、reinterpret_cast、const_cast、dynamic_cast来完成。
二、示例 1.隐式类型转换//隐式类型转换(内置数据类型)
void testImplicitConvert()
{
//算数计算
int a = 1;
double b = a;
cout << typeid(b).name() << endl;
}
//隐式类型转换(自定义类型)
class Boy
{
public:
Boy(const string& Name) : name(Name){};
void PlayWith(const Boy& b);
private:
string name;
};
void Boy::PlayWith(const Boy& b)
{
if (b.name == name)
{
cout << "和"<< b.name << "玩" << endl;
}
else
{
cout << "和" << b.name<< "玩" << endl;
}
}
int main()
{
testImplicitConvert();
Boy A("杨洋");
Boy B("许嵩");
A.PlayWith(B);
A.PlayWith(string("杨洋"));
system("pause");
return 0;
}
double 和许嵩玩 和杨洋玩2.强制类型转换



