Duvida em C++ (membros inline e passar classes como parâmetro) - C/C#/C++ - Clube do Hardware
Duvida em C++ (membros inline e passar classes como parâmetro)
Por V!OLADOR, 4 de julho de 2013 em C/C#/C++
V!OLADOR 39
desde 17/09/2004
To com uma duvida no C++ que insiste em não aclarar mesmo depois de muito procurar pelo submundo da net. Então, vamos ver se alguém por aqui tem isso claro e poderia dar uma luz.
Primeira duvida: eu to escrevendo um código, que por sinal já ta relativamente grande, e possui uma classe chamada "settings". O construtor dela inicializa (lendo a partir um arquivo de configuração) automaticamente varias variáveis (strings, bools, ints etc) que posteriormente serão usadas pra controlar as demais classes, funções etc.
A duvida é: Considere que eu eu tenha uma outra classe chamada "teste", por exemplo, e incluo nela a settings. E que a classe settings é invocada no main(), e algum tempo depois no próprio main() ou alguma sub rotina, a classe teste também é invocada. Em tempo de execução, todas as variáveis da settings estarão carregadas duas vezes? no escopo do main() e outra vez no escopo da classe teste?
E se sim, se eu passo o objeto da classe settings no main(), como parâmetro, nas chamadas de outras funções e classes eu economizo alguma coisa?
Segunda duvida: Sobre funções membro inlines. Se eu declaro inlines no .hpp e não no arquivo de implementação, o compilador me diz que a função foi declarada e nunca definida. Se eu a declaro inline na implementação e não no .hpp, o compilador diz que a declaração e definição da função não batem. E se declaro inline no .hpp e na implementação, o compilador também reclama. Como posso declarar inlines e defini-las em outro arquivo?