1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

dúvida c++ LNK1169

Discussão em 'Programação' iniciada por jahred, 3 de Novembro de 2008. (Respostas: 3; Visualizações: 883)

  1. jahred

    jahred Power Member

    Boas!

    estou a fazer um projecto no VS2008, e o que se passa é que eu queria ter uma função que será partilhada por várias classes, pra não complicar muito pode ser por exemplo:

    Código:
    int soma (int x, int z)
    {
    return x+z;
    }
    
    (atenção que na realidade são muitas funções com finalidades bem mais complexas, só dei este exemplo pra não complicar)

    como é que eu faço com que esta função seja usada em todas as classes (cada uma no seu .cpp e .h respectivos) sem ter que declará-la várias vezes?

    já tentei fazer um

    (Funcoes_Auxiliares.h)
    Código:
    #ifndef FUNCOESAUXILIARES_H
    #define FUNCOESAUXILIARES_H
    
    int soma (intx, int z);
    
    #endif
    
    e um

    (Funcoes_Auxiliares.cpp)
    Código:
    #include "Funcoes_Auxiliares.h"
    
    int soma (int x, int z)
    {
    return x+z;
    }
    
    e depois é só fazer em todas as classes #include "Funcoes_Auxiliares.h", mas o VS tripa-se todo, não dá erros nenhuns, mas dá erros de linkagem que acho que vêm do problema que coloquei acima:

    penso que é por fazer em várias classes #include "Funcoes_Auxiliares.h"

    LNK1169 que é precedido pelo LNK2005...

    se alguém me souber ajudar, gracias!

    cumps
     
    Última edição: 4 de Novembro de 2008
  2. arconada

    arconada Power Member

    tenta um #pragma once em cada .h... se bem que so com essa informação não é facil... erros de linkagem são sempre os piores.
     
  3. jahred

    jahred Power Member

    então nunca ninguem teve erros de linkagem que os tenha resolvido?
     
  4. arconada

    arconada Power Member

    tas a fazer isto duas vezes "int soma()" com cabeçalho e definição diferentes.
     
    Última edição: 5 de Novembro de 2008

Partilhar esta Página