c ++转换变量时的不同基础类型

时间:2012-02-28 18:48:06

标签: c++ visual-c++ variables

c ++在转换变量期间遇到不同的基本类型问题 是的,愚蠢的问题,但我是c ++和IDK的新手是什么问题。

我有这段代码:

#include <iostream>
using namespace std;
int main()
{
float a = 54;
cout << a;
double(a);
cout << a;
return 0;
}

和这个错误:

  • 错误 C2371 :'a':重新定义;不同的基本类型第7行
  • 错误 C2088 :'&lt;&lt;' :第8类非法

为什么它写了:不同的基本类型,当我只将float转换为double时?这是什么意思第二个错误?什么类行

我也有这个问题:我可以转换2个不同基本类型的变量f.e. int到string?和转换f.e相同双浮动还是不同?

Here is print screen during debugging project in VC++ 2010

1 个答案:

答案 0 :(得分:0)

您已将'a'声明为float,编译器认为您正在尝试将其重新声明为double。试试这个:

#include <iostream>
using namespace std;
int main()
{
    float a = 54;
    cout << a;
    double b(a);
    cout << b;
    return 0;
}

至于你的第二个问题:

  

我可以转换具有不同基本类型f.e的2个变量。 int到   串?和转换f.e相同双重浮动或   不同?

答案是你无法隐式或甚至直接转换它们(并保留它们的含义),但你当然可以使用std::stringstream等设施为你进行转换。另一方面,从floatdouble的转换是编译器将为您执行的隐式转换。