使用指向函数的指针访问成员变量
Member variable access with pointer-to-function
有没有办法让类成员函数指针指向的函数访问函数指针类的成员变量? 还是必须将成员变量传递给函数?
class A {
public:
int var;
void(*fooPtr) (void);
//ctor
A(void(*funcPtr)(void)) :fooPtr(funcPtr){}
};
void foo(void) {
int test = var;
}
A classInstance(&foo);
编译器错误:未在此范围内声明"var"
foo() 不是 A 类的成员。您只需将指向函数的指针传递给构造函数。您必须将指向类实例的指针或引用传递给 foo() 函数,以便它可以访问var
实例。
class A {
public:
int var;
void(*fooPtr) (const A&);
//ctor
A(void(*funcPtr)(const A&)) :fooPtr(funcPtr){}
};
void foo(const A &a) {
int test = a.var;
}
A classInstance(&foo);
最好使用 typeddefs 来避免这种冗长的函数指针构造。
class A {
typedef void(*MyPtr)(const A&);
public:
int var;
MyPtr fooPtr;
A(MyPtr fooPtr) :fooPtr(fooPtr){}
};
void foo(const A &a) {
int test = a.var;
}
A classInstance(&foo);
相关文章:
- 通过指向指针数组的指针访问子类的属性
- 使用指针访问数组中的对象数据成员
- 无法通过指针访问对象的成员
- decltype:使用指针访问类的静态成员
- 是否可以使用指针访问变量以避免直接编辑变量?
- 为什么 C++ 地址中的矢量无法通过原始指针访问
- 使用指针访问数组元素时出现意外结果
- 使用指针访问数组的值
- C++继承从基类指针访问派生类中的非虚拟函数
- 如何使用指针访问成对向量的元素
- 为什么有些库提供无指针访问,而另一些库则不提供
- 如何通过引用或指针访问二维矢量
- 使用指针访问参数接收的结构中的元素时内存泄漏
- 我正在学习C++,我不能使用指针访问参考吗?(举个例子)
- 复制堆栈上的成员值或使用指针访问它?
- C++娜娜 如何从全局列表框*指针访问列表框内的索引 0 上的按钮?
- 通过此指针访问时的成员差异和自身的成员指针(简单的 QT 示例问题)
- 从指针访问 Kaguya Lua 状态
- 说明通过指针访问非静态类成员函数
- 有没有办法使用初始化到第一行的指针访问 2d 数组的第二行?