如何在c ++中将int类型更改为double

Yod*_*oda 0 c++ types numbers primitive-types

有没有办法将变量初始化为通用数字类型或int,然后将其类型更改为double?

TYPE x = 4;
// commands changing its type
here it(variable x) became double.
Run Code Online (Sandbox Code Playgroud)

我知道这很奇怪.

变量必须具有相同的名称.

Jac*_*ley 10

C++是一种静态类型语言.声明变量时,类型是固定的.

你可以用联盟来做你所描述的,但需要非常小心,例如

union DoubleInt
{
  int i;
  double d;
};

DoubleInt X;
X.i = 4;

// ... whatever

X.d = X.i;
X.d += 0.25;
Run Code Online (Sandbox Code Playgroud)

但工会真的只是一个明智的选择,你迫切需要打包.您还可以创建一个可以表现为double或int的类,但实际上,您正在谈论的内容听起来并不像是在用C++方式思考.

最后,boost :: variant可能会做你想要的吗?

  • 我不会建议工会.这只是重新解释位模式.不是OP想要的. (2认同)