gpt4 book ai didi

C++ - 将类转换为其他类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:49 27 4
gpt4 key购买 nike

#include <iostream>
using namespace std;
class length
{
int meter;
public:
length(int m)
{
meter=m;
}
operator double()
{
return (1.0*meter/1000);
}
};
int main()
{
length a(1500);
double m=double(a);
double n=float(a);
double l=int(a);
cout <<"m="<<m<<"km"<<endl;
cout <<"m="<<n<<"km"<<endl;
cout <<"m="<<l<<"km"<<endl;
return 0;
}

结果如下:

m=1.5km
m=1.5km
m=1km

为什么 float(a)int(a) 仅在 double(Class length) 定义的情况下工作?

最佳答案

floatint 可以工作,因为 C++ 具有内置的数字类型之间的转换。特别是,double 可以转换为 floatint;这就是您的程序中发生的事情:lengthdouble 的转换是使用您的用户定义的转换运算符执行的,然后是 double 的内置转换floatint 执行以将类型强制转换为所需的目标类型。

关于C++ - 将类转换为其他类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17119743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com