当我使用带空括号的bool类型的单个参数调用函数时,bool参数的值是什么?

问题描述 投票:0回答:2

我只是想知道在不传递值的情况下调用函数时,成员函数的bool参数的值是多少?这是假的吗?为什么是假的?

bool CSVread::Reset( bool partial_reset /* = false */ )  

然后重置称为

obj.reset()

没有传递参数,所以partial_reset的值是什么,为什么?在Visual Studio中,它是错误的,但是为什么呢?

我找不到布尔值的任何定义,因为函数参数为假?函数参数不是函数范围的一部分,因此它应该是自动存储的,因此其默认值是未定义的?

function c++11 boolean arguments parameter-passing
2个回答
1
投票

默认情况下,它不会被初始化,因此根据内存中的垃圾值,它可能为true或false。

请参阅此答案以获取更多信息:Why is a C++ bool var true by default?

顺便说一句,使用接受参数而不提供参数或默认值的函数不是一个好习惯。除非您有懒惰的编译器选项,否则这将导致编译错误


0
投票

默认情况下,每个布尔值都是假,除非将其更改为另一个值。

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/default-values

© www.soinside.com 2019 - 2024. All rights reserved.