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?

questionAnswers(3)

yourAnswerToTheQuestion