C++ blues

C++ é uma linguagem fantástica, até a hora em que ela começa a lhe mostrar seus espinhos. Infelizmente, isso acontece com muita freqüência, o que torna programar nessa linguágem um trabalho de corno. E não são coisas complicadas (criar em tempo de execução classes usando apenas uma string com seu nome), mas as coisas simples as que mais irritam:

  • Você deve explicitamente chamar os construtores das classes pai.

    Isso é obvio mas… por quê? Se eu não estou acrescentando nenhum atributo à classe e quero preservar na classe derivada as mesmas assinaturas dos construtores da classe-pai para que re-escrever tudo? Talvez eu tenha passado tempo demais em python, onde todos os métodos (incluindo construtores) são virtuais.

  • Não se deve chamar métodos virtuais em construtores

    Novamente, depois que você adestrou seu cérebro para pensar na lógica de C++, isso também deveria parecer óbvio. Mas não parece. Isso é tão verdade que o Scott Myers tem uma entrada especificamente para isso no seu Effective C++, 3ª edição.

Leave a Reply