c – 我可以依赖新的bool初始化为false吗?

前端之家收集整理的这篇文章主要介绍了c – 我可以依赖新的bool初始化为false吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在C中,我可以依赖于在所有情况下初始化为false的新bool吗?
bool *myBool = new bool();

assert(false == *myBool);  // Always the case in a proper C++ implementation?

(更新了反映评论代码.)

解决方法

在这种情况下,是的;但原因很微妙.

新bool()中的括号会导致值初始化,将其初始化为false.如果没有它们,新的bool将改为执行默认初始化,从而使其具有未指定的值.

就个人而言,如果可能的话,我宁愿看到新的bool(false),以明确它应该被初始化.

(假设有充分理由使用new;即使有,也应该由智能指针管理 – 但这超出了这个问题的范围).

注意:这回答了我阅读时的问题;在编写完其他答案之后,它已被编辑以改变其含义.

猜你在找的C&C++相关文章