Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C++ unresolved external symbol

Zdravím. Dělám jeden projekt ve Visual Studiu 2013 a chci se zeptat, jak správně definovat metody jedné třídy ve více zdrojových souborech. Příklad:

class myclass
{
  private:
    int a;
    int b;
  public:
    void uloz(int value1, int value2);
    int soucet();
    int rozdil();
};
Tato definice je dejme tomu v souboru head.h
A teď bych chtěl každou metodu definovat v samostatném .cpp souboru. Vytvořím soubory uloz.cpp, soucet.cpp a rozdil.cpp, na začátek dám #include "head.h" a metody definuji. Např.
// uloz.cpp
#include "head.h"

void myclass::uloz(int value1, int value2)
{
  a = value1;
  b = value2;
}
Při překladu se ovšem objeví chyba např. unresolved external symbol uloz.obj, že nebyla definována metoda soucet(); Pokud všechny metody definuji v jednom .cpp souboru, tak problém není. Tohle je jen příklad, ve skutečnosti je metod asi 2 desítky a některé z nich jsou na několik stovek řádků, proto bych chtěl pro lepší přehlednost definovat některé metody v dalších souborech. Jak to udělat správně?
Díky.

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny