003
28.10.2007, 15:46 Uhr
~Patrick S.
Gast
|
Zitat: |
in BAR kennt er FOO nicht, mal davon abgesehen das in FOO BAR steht
|
Natürlich sollte in Foo.h die Klasse foo heissen, hab mich nur verschrieben
Zitat: |
In der Klasse bar fehlt der Include von foo.h, sonst kennt er dort den Typ foo nicht.
|
C++: |
// Klasse FOO:
// foo.h class bar; // Damits bekannt wird ..
class foo { public: // funktionen .. void set(int); private: friend class bar; int any; };
//foo.cpp
#include "foo.h" #include "bar.h" // Das ergibt mehrere Fehler(Siehe unten) #include < ALLE ANDEREN >
void foo::set(int some) { any = some; }
|
C++: |
// Klasse BAR:
// bar.h
class bar { public: void ausgabe(); private: foo inst; // HIER FEHLER NR. 1 };
//bar.cpp
#include "bar.h" #include < ALLE ANDEREN >
void bar::ausgabe() { std::cout << inst.any << std::endl; }
|
C++: |
// MAIN.CPP:
#include "bar.h" #include "foo.h" #include <ALLE ANDEREN, zbsp. iostream,..>
int main() { foo haha; haha.set(10);
bar test; test.ausgabe();
return 0; }
|
und der Fehler lautet:
Zitat: |
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int"
|
und der Fehler, wenn ich bar.h includiere in foo.cpp, dann kommen folgende:
Zitat: |
error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'inst' error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'inst' error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int"
|
Ich danke schon im voraus |