繁体   English   中英

类静态方法访问它的静态数据成员

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM