C++ 类静态方法访问它';s静态数据成员
这个问题是对:C++ 类静态方法访问它';s静态数据成员,c++,class,memory,static,C++,Class,Memory,Static,这个问题是对: 这个问题的好处是,每当调用类方法时,都会隐式地传递对象的地址,这有助于它使用“this*”访问类的数据成员 跟进问题是: 类的静态方法如何访问类的静态数据成员 争论仍然是一样的。函数只能访问堆栈上加载的局部变量 静态数据成员或其地址是否隐式加载到静态函数堆栈中 如果没有,它是如何工作的 原因是两者都未绑定到该类的实例 例如 class test { public: static int i=5; static int getI(){return i;}
这个问题的好处是,每当调用类方法时,都会隐式地传递对象的地址,这有助于它使用“this*”访问类的数据成员 跟进问题是:
- 类的静态方法如何访问类的静态数据成员李>
- 静态数据成员或其地址是否隐式加载到静态函数堆栈中
- 如果没有,它是如何工作的
- 原因是两者都未绑定到该类的实例
例如
class test
{
public:
static int i=5;
static int getI(){return i;}
};
您可以访问i
如:
int a=test::i;
或者
int a=test::getI();
i
存储在程序的全局数据部分。它不绑定到对象,因此对于创建的每个实例,它也是相同的。您可以访问i,而无需创建类测试的实例
<代码>类测试在这种情况下仅是一个名称空间。没有内存魔法。没有“静态函数堆栈”这样的东西。类静态成员只是名称中带有:
的全局变量;他们有一个由链接器分配的地址。