除了定义为全局变量之外,在所有类方法中访问变量的方法

时间:2012-01-19 15:09:07

标签: c++

有没有办法在类中的所有方法中访问变量(除了使用定义cpp文件以上的全局变量)?

TIA

3 个答案:

答案 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
}

但也许静态的方式是你想要的: - )