访问静态成员函数中的非静态成员的解决方法

Posted

技术标签:

【中文标题】访问静态成员函数中的非静态成员的解决方法【英文标题】:Workaround for accessing non-static members inside static member functions 【发布时间】:2013-09-11 09:23:10 【问题描述】:

在另一个类(比如 B)的静态成员函数中访问某个类(比如 A)的非静态成员变量的解决方法是什么?我正在用 C++ 编码。 A 类是使用 B 类的公共属性派生的。

任何指针?

【问题讨论】:

通过对象访问非静态成员,通过类访问静态成员。因此,要从静态成员函数访问非静态成员,您需要知道要访问成员 var 的对象。你能多谈谈你的问题吗? 如果你需要这个,你可能有糟糕的设计或者不理解静态和非静态成员的目的(或者它是一个X-Y problem)。你能更具体地说明你(认为你)为什么需要这个吗? 【参考方案1】:

在调用静态成员函数时将引用/指针传递给实例。使用该实例调用非静态成员函数。

【讨论】:

【参考方案2】:

可以通过类的实例访问非静态成员。因此,您可以通过静态成员函数中该类的实例访问成员(非静态)。

问候, 飞溅

【讨论】:

以上是关于访问静态成员函数中的非静态成员的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

从嵌套类的函数访问父级的非静态成员

关于C++静态成员函数访问非静态成员变量的问题

关于类中静态成员函数和静态成员变量的知识点

静态成员函数和访问运算符

在 C++ 成员函数中使用“静态”关键字限制访问

java中的静态static关键字