C++结构体的静态变量和类的静态变量是一样含义吗
时间: 2024-03-15 18:47:30 浏览: 66
C++中 结构体和类的区别
C++中结构体的静态变量和类的静态变量是完全一样的。结构体和类的区别仅在于默认的访问控制(默认是`public`和`private`),以及默认的继承方式(结构体默认是`public`继承,类默认是`private`继承)。
以下是一个简单的例子,展示了结构体和类中的静态变量的定义和访问:
```cpp
#include <iostream>
struct MyStruct {
static int staticVar;
};
int MyStruct::staticVar = 0;
class MyClass {
public:
static int staticVar;
};
int MyClass::staticVar = 0;
int main() {
MyStruct s;
s.staticVar = 1;
std::cout << "MyStruct staticVar: " << MyStruct::staticVar << std::endl;
MyClass c;
c.staticVar = 2;
std::cout << "MyClass staticVar: " << MyClass::staticVar << std::endl;
return 0;
}
```
在上述代码中,我们分别定义了一个结构体`MyStruct`和一个类`MyClass`,并在它们中都定义了一个静态变量`staticVar`。在`main`函数中,我们分别创建了一个`MyStruct`对象`s`和一个`MyClass`对象`c`,并分别给它们的`staticVar`赋值。最后,我们输出了两个静态变量的值,可以看到它们的定义和访问方式是完全一样的。
因此,C++中结构体和类的静态变量是没有任何区别的。
阅读全文