在静态成员方法中显式访问静态成员变量 - 在C ++中

时间:2015-08-29 12:48:42

标签: c++ class static this static-members

我知道如何在静态成员方法中访问静态成员变量 - 这是我通常使用的两种方式(非常简化):

class S{
    private:
        static const int testValue = 5;
    public:
        static int getTestValue0(){
            return testValue;
        }
        static int getTestValue1(){
            return S::testValue;
        }
};

(工作示例:http://ideone.com/VHCSbh

我的问题是:是否有更明确的方式来访问静态成员变量而不是ClassName::staticMemberVar

C ++中有self::之类的内容吗?

...我正在寻找像this这样的东西来引用静态成员。

2 个答案:

答案 0 :(得分:3)

  

在C ++中有类似self::的内容吗?

不存在此类功能,但您可以使用本地typedef类:

class MyClass {
    typedef MyClass self;
    static int testValue;
    static int getTestValue1(){
        return self::testValue;
    }
};

查看有效的demo

答案 1 :(得分:0)

不支持使用类名以外的内容。您需要实施它。

  

静态函数成员:通过将函数成员声明为静态,即可   使其独立于班级的任何特定对象。静止的   即使没有该类的对象,也可以调用成员函数   并且仅使用类名和访问静态函数   范围解析运算符::。

阅读详情click here