簡體   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