C++;-将类转换为其他类型 为什么浮点(a) >代码> int(a)< /> >只使用代码>双(类长度)< /Cl>定义的?< /P> 浮点和 int >代码>工作,因为C++在数值类型之间有内建转换。具体而言,double可以转换为fl
C++;-将类转换为其他类型C++;-将类转换为其他类型 为什么浮点(a) >代码> int(a)< /> >只使用代码>双(类长度)< /Cl>定义的?< /P> 浮点和 int >代码>工作,因为C++在数值类型之间有内建转换。具体而言,double可以转换为fl,c++,class,casting,C++,Class,Casting,C++;-将类转换为其他类型 为什么浮点(a) >代码> int(a)< /> >只使用代码>双(类长度)< /Cl>定义的?< /P> 浮点和 int >代码>工作,因为C++在数值类型之间有内建转换。具体而言,double可以转换为float和int;这就是程序中发生的情况:length到double的转换是使用用户定义的转换运算符执行的,然后执行从double到float或int的内置转换,将类型强制为所需的目标类型。您应该避免使用命名空间…,尤其是在标头中。它可能会导致与
<>为什么<代码>浮点(a)<代码> >代码> int(a)< /> >只使用代码>双(类长度)< /Cl>定义的?< /P> <代码>浮点和<代码> int >代码>工作,因为C++在数值类型之间有内建转换。具体而言,
double
可以转换为float
和int
;这就是程序中发生的情况:length
到double
的转换是使用用户定义的转换运算符执行的,然后执行从double
到float
或int
的内置转换,将类型强制为所需的目标类型。您应该避免使用命名空间…
,尤其是在标头中。它可能会导致与其他源的命名空间冲突。您可以使用std::cout执行代码>虽然。@C.Lang我知道这一点。这只是一个非常简单的测试代码片段。无论如何,谢谢你。
#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