非静态函数如何通过对象来访问类内静态变量, 请用C++给出示例
时间: 2024-03-05 12:51:02 浏览: 23
可以通过对象名或指向对象的指针来访问静态变量。以下是一个示例:
```c++
#include <iostream>
using namespace std;
class MyClass {
public:
static int staticVar;
void foo() {
staticVar++; // 通过this指针访问静态变量
}
};
int MyClass::staticVar = 0;
int main() {
MyClass obj1, obj2;
obj1.foo();
obj2.foo();
cout << obj1.staticVar << endl; // 通过对象名访问静态变量
cout << obj2.staticVar << endl; // 通过对象名访问静态变量
MyClass* pObj = &obj1;
pObj->foo();
cout << pObj->staticVar << endl; // 通过指向对象的指针访问静态变量
return 0;
}
```
在上面的示例中,我们定义了一个静态变量 `staticVar` 和一个非静态函数 `foo`,函数内通过 `this` 指针访问静态变量。在 `main` 函数中,我们创建了两个 `MyClass` 类型的对象 `obj1` 和 `obj2`,并通过对象名访问静态变量。然后我们创建了一个指向 `obj1` 的指针 `pObj`,并通过指针访问静态变量。