在C++中,靜態類成員變量是類的所有對象共享的變量,可以通過類名加作用域解析運算符(::)來訪問。靜態類成員變量必須在類的定義外部進行初始化,通常在類的實現文件中進行初始化。
下面是一個示例:
// MyClass.h
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass {
public:
static int count; // 聲明靜態類成員變量
};
#endif
// MyClass.cpp
#include "MyClass.h"
int MyClass::count = 0; // 初始化靜態類成員變量
// 可以在其他函數中使用靜態類成員變量
void incrementCount() {
MyClass::count++;
}
// main.cpp
#include "MyClass.h"
#include <iostream>
int main() {
std::cout << "Initial count: " << MyClass::count << std::endl;
incrementCount();
std::cout << "Updated count: " << MyClass::count << std::endl;
return 0;
}
在上面的示例中,MyClass
類有一個靜態類成員變量count
,在MyClass.cpp
文件中進行了初始化。在main.cpp
文件中我們可以通過MyClass::count
來訪問和修改count
的值。
需要注意的是,靜態類成員變量必須在類的定義外部初始化,否則會導致鏈接錯誤。另外,靜態類成員變量的訪問權限與普通類成員變量相同,可以根據需要設置為public
、protected
或private
。