【问题标题】:function definition does not declare parameters函数定义不声明参数
【发布时间】:2009-10-22 06:44:22
【问题描述】:

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相关,函数指针可以声明为槽/信号吗?

【问题讨论】:

    标签: c++ qt parameters


    【解决方案1】:

    不,你不能……把 virtual 放在函数指针上是没有意义的。您不能覆盖变量。

    【讨论】:

      【解决方案2】:

      函数指针是数据。数据成员不能是虚拟的。而且他们不能像您的示例中那样通过{} 定义“主体”。你想用这个做什么?

      【讨论】:

        【解决方案3】:

        也与问题中的示例无关,尽管您在使用以下代码时会收到相同的错误消息:

        class myClass
        {
            public:
                get_a { return a; };  // <-- missing () !!!
            private:
                int a;
        };
        

        (明显的)问题是get_a方法后面缺少()

        希望对阅读问题标题时点击链接的人有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-05
          • 2020-10-07
          • 2023-03-12
          • 1970-01-01
          • 2016-08-15
          • 2017-02-16
          • 1970-01-01
          相关资源
          最近更新 更多