Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;-将类转换为其他类型 为什么浮点(a) >代码> int(a)< /> >只使用代码>双(类长度)< /Cl>定义的?< /P> 浮点和 int >代码>工作,因为C++在数值类型之间有内建转换。具体而言,double可以转换为fl_C++_Class_Casting - Fatal编程技术网

C++;-将类转换为其他类型 为什么浮点(a) >代码> int(a)< /> >只使用代码>双(类长度)< /Cl>定义的?< /P> 浮点和 int >代码>工作,因为C++在数值类型之间有内建转换。具体而言,double可以转换为fl

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的内置转换,将类型强制为所需的目标类型。您应该避免使用命名空间…,尤其是在标头中。它可能会导致与

C++;-将类转换为其他类型
<>为什么<代码>浮点(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