【发布时间】:2024-05-04 22:35:02
【问题描述】:
如何在 C++ 中默认初始化原始类型的局部变量?例如,如果 a 有 typedef:
typedef unsigned char boolean;//that's Microsoft RPC runtime typedef
我想更改以下行:
boolean variable = 0; //initialize to some value to ensure reproduceable behavior
retrieveValue( &variable ); // do actual job
变成可以自动默认初始化变量的东西——我不需要为它分配一个特定的值,而是我只需要在每次程序运行时将它初始化为相同的值——与带有我可以拥有的构造函数初始化列表:
struct Struct {
int Value;
Struct() : Value() {}
};
每次创建实例时,Struct::Value 都会默认初始化为相同的值,但我从不在代码中写入实际值。
我怎样才能使局部变量具有相同的行为?
【问题讨论】:
-
你想达到什么目的? Mabe 在对象中装箱原始变量会有所帮助吗?
-
@clyfe:我不想在我的代码中包含实际值,因为这无关紧要。
-
我不确定你到底想要什么。你想自动拥有
T obj;default-initializeobj即使是内置的?那是不可能的。还是您只需要一种方法来默认初始化obj,无论它是什么类型?然后,正如一些答案已经说过的那样,T obj = T();是要走的路。 -
另一方面:
boolean variable = retrieveValue()也不错。这样打字就少了:) -
想要将变量初始化为某些东西但不在乎什么似乎很奇怪。我想知道您是否正在尝试在这里解决一些更大的问题,并且可能有更好的方法来解决这个问题?
标签: c++ initialization local-variables built-in-types