eclarando objetos de classe em um arquivo de cabeçal
Cumprimentos a todos
Eu pareço estar pegando um fundo, mas não consigo encontrar a solução em lugar nenhum. Qualquer pessoa que vá em frente e explique.
Tenho um programa que consiste em três arquivos; main.ccp, add.h, add.cpp.
Declaro a classe 'SA' em add.h e tenho todas as minhas funções definidas em add.cpp
adicionais.h
class SA {
...
public
int x;
} Obj1, Obj2;
main.ccp
#include "additional.h"
int main() {
Obj1.x = 5;
...
}
Isso me dá um erro de link na compilação: erro LNK2005: "class SA Obj1" (? Obj1 @@ 3VSA @@ A) já definido em main.obj
A única definição do objeto ocorre em add.he nenhum outro lugar. O programa compila muito bem se declarar os objetos no principal e não no cabeçalho:
main.ccp
#include "additional.h"
int main() {
SA Obj1;
Obj1.x = 5;
...
}
A questão é que eu quero usar os objetos primariamente no add.cpp, mas ainda preciso inicializar vários valores públicos por meio do main.cpp. Alguma palavra de sabedoria?