[英]Class static method access to it's static data members
这个问题是对以下内容的扩展:
类方法访问它的数据成员
从问题中得出的结论是,每当调用一个类方法时,它都会被隐含地传递给对象的地址,这有助于它使用'this *'来访问类的数据成员。
后续问题是:
论点保持不变。 函数只能访问堆栈中加载的局部变量。
静态数据成员或其地址是否隐含地加载到静态函数堆栈中?
如果不是,它是如何工作的?
原因是因为两者都没有绑定到该类的实例。
例如
class test
{
public:
static int i=5;
static int getI(){return i;}
};
你可以访问i
喜欢:
int a=test::i;
或者喜欢
int a=test::getI();
i
存储在程序的全局数据部分中。 它不受对象的约束,因此对于创建的每个实例它也是相同的。 您可以在不创建class test
实例的情况下访问i。 class test
只是这种情况下的命名空间。 没有记忆魔法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.