TextLayoutTransition有什么问题?函数指针可以不被声明为虚拟吗?
LCDWrapper.h:23: error: function definition does not declare parameters
这是班级。
class LCDInterface {
public:
// Slots
virtual void TextSetSpecialChars() = 0;
virtual void LayoutChangeBefore() = 0;
virtual void LayoutChangeAfter() = 0;
virtual void TextSpecialCharChanged(unsigned int i) = 0;
virtual void ChangeLayout() = 0;
virtual void (*TextLayoutTransition)(Generic<LCDText> *v){}; // line 23
virtual void TransitionFinished() = 0;
};
编辑:稍微相关,与Qt有关,函数指针可以声明为插槽/信号吗?
答案 0 :(得分:4)
不,你不能......将虚拟放在函数指针上是没有意义的。您可以覆盖变量。
答案 1 :(得分:4)
函数指针是数据。数据成员不能是虚拟的。并且他们不能像你的例子那样通过{}
定义“身体”。你想用这个做什么?
答案 2 :(得分:0)
与问题中的示例无关,但在获得以下代码时会收到相同的错误消息:
class myClass
{
public:
get_a { return a; }; // <-- missing () !!!
private:
int a;
};
(显而易见的)问题是方法get_a之后缺少()
。
希望在阅读问题标题时帮助人们关注链接。