0

所以我有这样的东西:

//somewhere in the class header 
static void bar(); 
Someobj baz;


//meanwhile in the implementation
void foo::bar()
{
   baz.f()//this doesn't work b/c baz isn't declared as static
} 

我是否必须将我想在静态函数 foo 中使用的所有内容也声明为静态的,还是有更好的方法?

4

2 回答 2

0

是的你是。如果您有 10 个对象并且每个对象都有自己的baz,那么bar应该如何知道baz您在说哪个?

它不能。这就是为什么你也只能有一个baz,一个静态的。

于 2013-06-11T01:32:13.827 回答
0

静态函数就像全局函数,它们没有关联的实例,因此您不能引用实例成员。如果您需要与此类关联的单个 baz 对象,请将其设为静态。否则,你需要改变你的逻辑。

于 2013-06-11T01:32:32.140 回答