如何从同一个类的静态函数访问一个类的私有成员?

waas1919

是)我有的:

因此,我有一个带有私有成员的类和一个静态函数。该函数必须确实是静态的,我无法更改。

我想要的是:

我需要从静态函数访问私有成员。有任何想法吗?:)

请检查下面的代码:

class Base
{
private:
   int m_member;
public:
   Base() : m_member(0) {};
   ~Base() {};

   static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode); /* This must really be static because it is coming from C */
};

void Base::key_callback(GLFWwindow* window, int key, int scancode, int action, int mode)
{
    m_member = 1; // <---- illegal reference to non-static member 'Base::m_member'
}
一些程序员哥们

静态成员函数是该类的一部分,并且没有与之关联的对象实例(换句话说,this静态成员函数中没有指针)。为了能够访问非静态成员变量,您需要一个类的实际实例。

使用旧的C库设置回调时,常见的解决方案是使用某种用户数据指针,并将其分配给该类的实例。对您来说幸运的是,GLFW库具有您可以使用的指针

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在同一个类中具有静态和非静态方法是否错误?

C ++如何在命名空间中调用另一个类的静态函数

如何从同一个类的静态方法中调用非静态方法?

为什么要创建一个只有1个静态函数的类?

返回一个结构的类函数,该结构是该类的私有成员

如何在同一个类的静态方法内访问该类的保护变量?

在同一个类中使用构造函数参数时,为什么可以访问私有属性

在同一个类中调用函数指针

无法在同一个类中调用函数

如何在类的方法参数中访问类私有数据成员,我得到一个错误,错误地使用了非静态数据成员

在C ++中,如何与另一个类的静态函数成为朋友

如何在另一个类的静态成员函数中访问私有静态变量?

调用类好友函数的类成员函数(所有同一个类)可能吗?

您如何访问另一个类中一个类的成员函数?

我如何获得一个类成员函数以访问另一个类成员函数的私有成员?

通过私有成员访问同一个类的私有成员变量

想要一个静态成员函数来调用同一类的成员变量

将对象传递给类并在同一个类中的静态函数中调用它

在类外初始化一个私有静态字段(这里是private的意思)并调用静态函数

同一个函数中的静态函数变量初始化顺序

为什么类模板中的成员函数在同一个地址创建同一个对象

同一个类中的两个函数不能互相访问

NodeJS:静态方法可以调用同一个类的构造函数吗?

如何将两个类成员函数与同一个类中的另一个函数相加?

如何在同一个类的函数中获取类成员的函数指针?

复制赋值函数如何访问另一个对象的私有成员(Stroustroup 原理与实践书)?

我如何无法从 ruby 中同一个模块的类中访问模块函数?

jquery针对on('input)函数的同一个类的成员

访问同一文件中类的私有成员的函数