繁体   English   中英

访问静态成员变量

[英]accessing static member variables

我可以使用点表示法访问类的静态成员变量,还是应该使用双冒号的访问运算符?

如果您有实例变量,则可以使用点运算符访问静态成员(如果可访问)。

#include <iostream>
using namespace std;

class Test{
    public:
        static int no;
};

int Test::no;
int main(){
  cout << "\n" << Test::no;
  Test::no=100;
  Test a;
  cout << "\n" << a.no;
 return 0;
}

您必须使用双冒号访问运算符。 这是从类名访问静态成员的唯一有效方法。

它不一定是“你可以”的问题(因为编译器通常会让你关闭警告),但“你应该”问题。

静态数据成员不是对象的一部分,因此不应该这样对待。

将静态数据成员作为“普通”数据成员访问可能会使代码不易读取,因为它可能意味着不同的语义(尽管这通常不太可能)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM