2013-05-02 23 views
10

mam następujące pliki nagłówka:nieznane klasa nazwa typu

https://gist.github.com/wemakeweb/5501443 i kompilator zawsze informuje „Nieznana nazwa typu Class”. Zawarłem Deklarację Forward, aby przerwać okrąg, w tym, gdzie myślę, że muszę. Co zapomniałem?

Edit: i umieścić je w jednym pliku nagłówka, a kompilator nadal raportów "oczekiwano; po najwyższego poziomu declarator"

https://gist.github.com/wemakeweb/5583500

Edycja 2 teraz im się błędy linkera. "Niezdefiniowane symbole dla architektury x86_64"

rozwiązane problemy

  1. Okrągłe
  2. main.c zamiast main.cpp
  3. rzeczywisty kod został w statycznej lib, który nie był poprawnie połączone
+2

W jakim wierszu przykładu? Z jakiego kompilatora korzystasz i jakie opcje kompilacji? –

+1

Nie pokazałeś już żadnych błędów ilnkera. Musisz się bardziej postarać, jeśli chcesz, aby ludzie pomogli ci rozwiązać problemy. – Roddy

+1

Tak, masz rację, opublikowałem błędy linków tylko jako komentarz do odpowiedzi roddys –

Odpowiedz

17

Błąd? error: unknown type name ‘class’

Prawdopodobnie kompilujesz go jako C zamiast C++.

Upewnij się, że plik źródłowy ma rozszerzenie .cpp i że wszystkie odpowiednie flagi kompilatora są ustawione poprawnie. (To pomaga, jeśli podasz dokładny komunikat o błędzie i numery linii. Nie próbuj ponownie pisać, po prostu wycinaj i wklej.)

+1

pierwszy błąd jaki dostaję w pliku nagłówka jest "oczekiwany, po deklaratorze najwyższego poziomu" –

+2

@SepOSep Tak, ale jaki numer linii i plik? W pliku nagłówkowym nie ma nic złego, więc pokaż także źródło cpp, które próbuje je uwzględnić. Czy masz * plik .cpp, prawda? – Roddy

+1

Tak, to był plik main.c, a teraz zmieniłem go na main.cpp. Teraz walczę z błędem Linkera "Niezdefiniowane symbole dla architektury x86_64". –

6

Masz co najmniej jeden cykliczny zawiera zależność między Feld.h i Figur.h. Deklaracje przekazywania nie mają zastosowania, jeśli uwzględnisz również nagłówki. Po prostu usuń załączniki.

+1

to nie działa i edytowałem moje pytanie –