我只是想知道在不传递值的情况下调用函数时,成员函数的bool参数的值是多少?这是假的吗?为什么是假的?
bool CSVread::Reset( bool partial_reset /* = false */ )
然后重置称为
obj.reset()
没有传递参数,所以partial_reset的值是什么,为什么?在Visual Studio中,它是错误的,但是为什么呢?
我找不到布尔值的任何定义,因为函数参数为假?函数参数不是函数范围的一部分,因此它应该是自动存储的,因此其默认值是未定义的?
默认情况下,它不会被初始化,因此根据内存中的垃圾值,它可能为true或false。
请参阅此答案以获取更多信息:Why is a C++ bool var true by default?
顺便说一句,使用接受参数而不提供参数或默认值的函数不是一个好习惯。除非您有懒惰的编译器选项,否则这将导致编译错误
默认情况下,每个布尔值都是假,除非将其更改为另一个值。
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/default-values