考虑以下代码:
#include <iostream>
class Bar
{
public:
void foo(bool b = false, std::string name = "");
};
void Bar::foo(bool b, std::string name)
{
if (!b)
{
std::cout << "b is false" << std::endl;
}
else
{
std::cout << "b is true" << std::endl;
}
}
int main()
{
Bar myBar;
myBar.foo("bla");
return 0;
}
我猜 C++ 没有坏,但谁能解释为什么输出是真的?我正在开发 VS 2010,但我也签入了运行 gcc 的 ideone