Acabei de encontrar o seguinte erro (e encontrei a solução online, mas ela não está presente no Stack Overflow):
(.gnu.linkonce. [coisas]): referência indefinida a [método] [arquivo de objeto] :(. gnu.linkonce. [coisas]): referência indefinida a `typeinfo for [classname] '
Por que alguém pode obter um desses erros de vinculador "referência indefinida ao typeinfo"?
(Pontos de bônus se você puder explicar o que está acontecendo nos bastidores.)
virtual void abc() =0;
(se a versão base nunca é chamado)
abc()
assim, poderá facilmente esquecer de redefinir abc()
na classe derivada e pensar que está tudo bem, pois você ainda poderá chamar a função sem nenhum problema. Uma boa prática para implementar funções virtuais puras é encontrada neste artigo , e é para fazer a função imprimir "Função virtual pura chamada" e travar o programa.
= 0;
.