如何在此类中使用函数指针
How do I use function pointers within this class?
我有一个类:Circle。它可以绘制填充圆或带轮廓的圆。根据其当前设置,我想要一个调用 draw_filled() 或 draw_outlined() 的通用 draw() 方法。
在我的班级里,我有会员void (*draw)(void);
我有两个私人功能:void draw_filled(); void draw_outlined();
然后,我有以下方法:
void Circle::fill(const bool fill)
{
m_fill = fill;
if (fill)
draw = draw_filled;
else
draw = draw_outlined;
}
我在两个绘制分配上都收到错误:
错误 C2440:"=":无法从"void (__thiscall X2D::GL::Circle::* )(void)"转换为"void (__cdecl *)(void)"1> 没有上下文可以进行这种转换
通常,我不在类中使用函数指针,所以这对我来说是新的。任何帮助将不胜感激。谢谢。
从错误消息来看,draw
似乎是指向函数的泛型指针,而不是指向成员函数的指针。平局的声明应该是void (X2D::GL::Circle::*draw)(void)
的,以便draw
指向Circle
的成员函数。
相关文章:
- QMetaObject invokeMethod的基于函数指针的语法
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- c++r值引用应用于函数指针
- 模板函数指针和lambda
- 是否可以将llvm::FunctionType转换为C/C++原始函数指针
- 带有类的函数指针
- () 函子后面的括号,而不是函数指针?
- 全局作用域中函数指针的赋值
- 使用"Task"函数指针队列定义作业管理器
- 将成员函数指针作为参数传递给模板方法
- 如何创建对象函数指针C++映射?
- 匹配函数指针作为模板参数?
- 通过函数指针定义类范围之外的方法
- 存储在类中的函数指针
- C++从函数指针数组调用函数
- 将返回值存储在函数指针数组的指针中是如何工作的?
- 整数键映射到头文件中的成员函数指针
- 从类成员函数到类 C 函数指针的转换
- 如何将内联匿名函数分配给C++函数指针
- 将字符缓冲区强制转换为函数指针