Pergunta

O que há de errado com TextLayoutTransition? Pode funcionar ponteiros não ser declarado virtual?

LCDWrapper.h:23: error: function definition does not declare parameters

Aqui está a classe.

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;
};

Edit:? Ligeiramente relacionado, e relacionada com Qt, ponteiros de função pode ser declarado como entalhes / sinais

Foi útil?

Solução

Não, você não pode .. não faz sentido colocar virtual em um ponteiro de função. Você pode substituir uma variável.

Outras dicas

Ponteiros de função são dados . membros de dados não pode ser virtual. E eles não podem ter um "corpo" definida através {} como no seu exemplo. O que você estava tentando fazer com isso?

Também não relacionados com o exemplo na questão, embora você recebe a mesma mensagem de erro quando se tem o seguinte código:

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

O problema (evidente) é a falta de () após o get_a método.

Hope que ajuda as pessoas seguindo o link ao ler o título da questão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top