definição de função não declarar parâmetros
-
05-07-2019 - |
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
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.