有没有办法在类中的所有方法中访问变量(除了使用定义cpp文件以上的全局变量)?
TIA
答案 0 :(得分:2)
foo.h中
class Foo {
static int bar;
void foo ();
};
void foo ();
Foo.cpp中
int Foo :: bar = 123;
void Foo :: foo () {
++bar; // ok
}
void foo () {
++ bar; // Error! Not in scope.
++ Foo :: bar; // Error! Private.
}
答案 1 :(得分:1)
您的意思是该类的静态数据成员吗?
答案 2 :(得分:1)
其他答案是正确的,但我没有读到你的问题,因为它在Foo对象中是相同的,这使得它在这里做静态(以及在多线程代码中使它变得有趣)。您也可以将其设为私有变量,例如:
部首:
class Foo
{
private:
int bar;
void foo ();
public:
Foo();
};
类别:
Foo::Foo() : bar(123) {}
void Foo :: foo ()
{
// Will update its own bar, but not every other Foo object that exists
++bar; // ok
}
但也许静态的方式是你想要的: - )