2012-09-12 174 views
-3

函数定义为static bool foo(const std::string& iVariable);属于A类。当我使用if (A::foo(Var))时,发现A :: foo(Var)的返回值不会改变,我在很多地方使用它,和Var已更改。那么这是否意味着A :: foo(Var)的返回值会在我第一次使用它之后得到修复?非常感谢!C++中的静态布尔函数

+1

那么问题是什么? –

+1

你会惊讶于函数'int f(int a){return 3; }即使你改变了参数,总是返回3!为什么这是令人惊讶的? –

+1

他值得探险家徽章? –

回答

2

看看A :: foo的文档,看它是否说在第一次调用之后它忽略了参数。如果确实如此,那么你不应该期望返回值会改变。如果它没有这样说,那么你应该期望值会根据输入和文档希望告诉你的其他东西以某种方式改变。

当然,文档可能是错误的或误导性的,在这种情况下,查看源代码可以澄清这一点。

如果没有文档,我建议您与代码作者交谈。

如果你是作者,你可能有一些工作要做。

+0

涵盖所有基础。 WhozCraig

+0

我想要“千里眼”徽章! –