gpt4 book ai didi

c++ - 整数的默认值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:27 24 4
gpt4 key购买 nike

我的程序需要在程序启动时将几个 float 设置为默认数字。当程序运行时,这些整数将被设置为它们的真实值。然而,这些真值可以是任何实数。我的程序将始终检查这些数字以查看它们的值是否已从默认值更改。

例如,假设我有整数 A、B、C。所有这些整数将在开始时设置为默认值(假设为 -1)。然后随着程序的进行,假设A和B分别设置为3和2。由于 C 仍处于默认值,程序可以得出结论,因为 C 尚未被分配非默认值。

当试图找到一个唯一的默认值时,问题就出现了。由于数字的值可以设置为任何值,如果它设置的值与默认值相同,我的程序将不知道 float 是否仍然具有默认值或它的真实值与默认值相同.

我认为NULL是默认值,但在C++中NULL等于0,导致同样的问题!

我可以创建一个由 bool 和 float 作为成员组成的完整对象,其中 bool 指示 float 是否已被分配了自己的值。然而,这似乎有点矫枉过正。是否有默认值我可以将我的 float 设置为使该值与任何其他值都不相同? (示例包括无穷大或 i)

我要求 C/C++ 解决方案。

最佳答案

I could create a whole object consisting of an bool and a integer as members, where the bool indicates whether the number has been assigned its own value yet or not. This however seems like an overkill.

您所描述的在 .NET 中称为“nullable type”。 C++ 实现是 boost::optional :

boost::optional<int> A;

if (A)
do_something(*A);

关于c++ - 整数的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com