Hej. Mam kilka plików: A.h, A.cpp, B.h, B.cpp i main.cpp.
Plik A.h
#include "B.h"
class string;
using std::string;
class vector;
using std::vector;
class ostream;
class A{
private:
long a;
string b,c,d,e;
vector<B> wektor;
//...
};
W pliku B.h:
#include "A.h"
class string;
using std::string;
class vector;
using std::vector;
class ostream;
class B{
private:
string b,c,d;
A a;
vector<int> e;
//...
};
W plik main.cpp chcę używać klas A i B. Ale dostaję błędy:
/home/unix/Pulpit/main.cpp|11|error: ‘std::string’ has not been declared|
/home/unix/Pulpit/main.cpp|13|error: ‘std::vector’ has not been declared|
/home/unix/Pulpit/main.cpp|25|error: ‘ostream’ does not name a type|
/home/unix/Pulpit/main.cpp|34|error: field ‘a’ has incomplete type|
/home/unix/Pulpit/main.cpp|36|error: field ‘b’ has incomplete type|
/home/unix/Pulpit/main.cpp|38|error: field ‘c’ has incomplete type|
/home/unix/Pulpit/main.cpp|40|error: field ‘d’ has incomplete type|
/home/unix/Pulpit/main.cpp|42|error: field ‘e’ has incomplete type|
/home/unix/Pulpit/main.cpp|44|error: ‘vector’ is not a template|
/home/unix/Pulpit/main.cpp|44|error: field ‘groups’ has incomplete type|
/home/unix/Pulpit/main.cpp|70|error: ‘vector’ is not a template|
/home/unix/Pulpit/main.cpp|71|error: ‘vector’ is not a template|
/home/unix/Pulpit/main.cpp|9|error: ‘ostream’ does not name a type|
/home/unix/Pulpit/main.cpp||In function ‘bool operator==(const A&, const A&)’:|
/home/unix/Pulpit/main.cpp|30|error: ‘const class A’ has no member named ‘a’|
/home/unix/Pulpit/main.cpp|30|error: ‘const class A’ has no member named ‘a’|
/home/unix/Pulpit/main.cpp|31|error: ‘const class A’ has no member named ‘b’|
/home/unix/Pulpit/main.cpp|31|error: ‘const class A’ has no member named ‘b’|
/home/unix/Pulpit/main.cpp|32|error: ‘const class A’ has no member named ‘c’|
/home/unix/Pulpit/main.cpp|32|error: ‘const class A’ has no member named ‘c’|
/home/unix/Pulpit/main.cpp|33|error: ‘const class A’ has no member named ‘d’|
/home/unix/Pulpit/main.cpp|33|error: ‘const class A’ has no member named ‘d’|
/home/unix/Pulpit/main.cpp|34|error: ‘const class A’ has no member named ‘e’|
/home/unix/Pulpit/main.cpp|34|error: ‘const class A’ has no member named ‘e’|
/home/unix/Pulpit/main.cpp||In member function ‘A& A::operator=(const A&)’:|
/home/unix/Pulpit/main.cpp|40|error: ‘class A’ has no member named ‘a’|
/home/unix/Pulpit/main.cpp|40|error: ‘const class A’ has no member named ‘a’|
/home/unix/Pulpit/main.cpp|41|error: ‘class A’ has no member named ‘b’|
/home/unix/Pulpit/main.cpp|41|error: ‘const class A’ has no member named ‘b’|
/home/unix/Pulpit/main.cpp|42|error: ‘class A’ has no member named ‘c’|
/home/unix/Pulpit/main.cpp|42|error: ‘const class A’ has no member named ‘c’|
/home/unix/Pulpit/main.cpp|43|error: ‘class A’ has no member named ‘d’|
/home/unix/Pulpit/main.cpp|43|error: ‘const class A’ has no member named ‘d’|
/home/unix/Pulpit/main.cpp|44|error: ‘class A’ has no member named ‘e’|
/home/unix/Pulpit/main.cpp|44|error: ‘const class A’ has no member named ‘e’|
/home/unix/Pulpit/main.cpp|45|error: ‘class A’ has no member named ‘groups’|
/home/unix/Pulpit/main.cpp|45|error: ‘const class A’ has no member named ‘groups’|
/home/unix/Pulpit/main.cpp||In constructor ‘A::A()’:|
/home/unix/Pulpit/main.cpp|52|error: ‘class A’ has no member named ‘a’|
/home/unix/Pulpit/main.cpp|53|error: ‘class A’ has no member named ‘b’|
/home/unix/Pulpit/main.cpp|54|error: ‘class A’ has no member named ‘c’|
/home/unix/Pulpit/main.cpp|55|error: ‘class A’ has no member named ‘d’|
/home/unix/Pulpit/main.cpp|56|error: ‘class A’ has no member named ‘e’|
/home/unix/Pulpit/main.cpp|57|error: ‘class A’ has no member named ‘groups’|
/home/unix/Pulpit/main.cpp|61|error: ‘vector’ is not a template|
/home/unix/Pulpit/main.cpp|61|error: prototype for ‘A::A(long int, string, string, string, string, string, vector)’ does not match any in class ‘A’|
/home/unix/Pulpit/main.cpp|55|error: candidates are: A::A(const A&)|
/home/unix/Pulpit/main.cpp|53|error: A::A(long int, string, string, string, string, string)|
/home/unix/Pulpit/main.cpp|50|error: A::A()|
/home/unix/Pulpit/main.cpp|74|error: ‘class A’ has no member named ‘a’|
/home/unix/Pulpit/main.cpp|74|error: ‘const class A’ has no member named ‘a’|
/home/unix/Pulpit/main.cpp|75|error: ‘class A’ has no member named ‘b’|
/home/unix/Pulpit/main.cpp|75|error: ‘const class A’ has no member named ‘b’|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|
Czy to znaczy, że jeśli nie mam wskaźników/referencji nie mogę używać deklaracji zapowiadających?