r34ln00b
Lt. Commander
- Registriert
- Feb. 2006
- Beiträge
- 1.096
Hallo zusammen,
ich habe hier ein Projekt mit mehreren cpp- und hpp-Dateien. Nun ist mir ein Fehler aufgefallen, wenn ich das Projekt mit g+ kompiliere. Der Fehler ist mir erst jetzt aufgefallen, da ich eigentlich clang++ nutze und durch Zufall den g++ aufrief.
Während clang++ ohne Meldung kompiliert und das Programm (wie erwartet läuft), spuck mir der g++ folgende zwei Meldungen aus:
und
Des Weiteren kann der g++ auch Code kompilieren, wenn ich das Flag
setze, wobei dann natürlich Warnungen anstelle der Error angezeigt werden.
Ich bin nun ein wenig verwirrt, wo der Fehler und was die Ursache ist und weiß nicht genau, was ich dagegen unternehmen kann.
Ich versuche die Situation möglichst abstrakt zu schildern, bei Unklarheiten bitte fragen.
Konkret bemängelt wird (soweit ich das schließen kann) ein Pointer. In einer Klasse Test_D sind zwei Pointer enthalten: Ein Verweis auf Test
und ein weiterer Verweis auf Test_D
.
Bei den g++-Ausgaben bezieht sich eine Error-Meldung auf die Deklaration in Test_D. Die Error-Meldung
bezieht sich auf die Klasse Test.
War ich verständlich genug? Kann mich jemand aufklären, was ich falsch mache?
Okay, jetzt saß ich eine längere Zeit an dem Problem, hatte mich entschlossen doch mal das CB-Forum zu fragen und kurz danach hat sich das Problem erledigt.
Ein Hinweis In C++ you cannot name a function the same name as a class/struct/typedef. hat es getan.
Ich denke nicht, dass der Thread sehr hilfreich oder nützlich ist. Wie kann ich diesen Thread löschen?
Grüße
ich habe hier ein Projekt mit mehreren cpp- und hpp-Dateien. Nun ist mir ein Fehler aufgefallen, wenn ich das Projekt mit g+ kompiliere. Der Fehler ist mir erst jetzt aufgefallen, da ich eigentlich clang++ nutze und durch Zufall den g++ aufrief.
Während clang++ ohne Meldung kompiliert und das Programm (wie erwartet läuft), spuck mir der g++ folgende zwei Meldungen aus:
Code:
error: declaration of ‘Test* Test::Test’
Code:
error: changes meaning of ‘Test from ‘class Test’
Code:
-fpermissive
Ich bin nun ein wenig verwirrt, wo der Fehler und was die Ursache ist und weiß nicht genau, was ich dagegen unternehmen kann.
Ich versuche die Situation möglichst abstrakt zu schildern, bei Unklarheiten bitte fragen.
Konkret bemängelt wird (soweit ich das schließen kann) ein Pointer. In einer Klasse Test_D sind zwei Pointer enthalten: Ein Verweis auf Test
Code:
Test* test;
Code:
test_d* Test_D;
Bei den g++-Ausgaben bezieht sich eine Error-Meldung auf die Deklaration in Test_D. Die Error-Meldung
Code:
changes meaning of <xx> from <class xx>
War ich verständlich genug? Kann mich jemand aufklären, was ich falsch mache?
Ergänzung ()
Okay, jetzt saß ich eine längere Zeit an dem Problem, hatte mich entschlossen doch mal das CB-Forum zu fragen und kurz danach hat sich das Problem erledigt.
Ein Hinweis In C++ you cannot name a function the same name as a class/struct/typedef. hat es getan.
Ich denke nicht, dass der Thread sehr hilfreich oder nützlich ist. Wie kann ich diesen Thread löschen?
Grüße
Zuletzt bearbeitet: