Kann ich jetzt nicht sagen hab gerade mit ein anderen Problem zu Kämpfen.
Es geht um namespace und friend operatoren.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
class A;
std::ostream &operator<<(std::ostream& stream, const A& obj);
std::istream &operator>>(std::istream& stream, A& obj);
class A{
private:
int a;
public:
friend std::ostream& ::operator<<(std::ostream& stream, const A& obj);
friend std::istream& ::operator>>(std::istream& stream, A& obj);
};
namespace Data{
class B;
}
std::ostream &operator<<(std::ostream& stream, const B& obj);
std::istream &operator>>(std::istream& stream, B& obj);
namespace Data{
class B{
private:
A bla;
public:
friend std::ostream& ::operator<<(std::ostream& stream, const B& obj);
friend std::istream& ::operator>>(std::istream& stream, B& obj);
};
}
namespace Game{
class C;
}
std::ostream &operator<<(std::ostream& stream, const C& obj);
std::istream &operator>>(std::istream& stream, C& obj);
namespace Game{
class C{
private:
A bla1;
B bla2;
public:
friend std::ostream& ::operator<<(std::ostream& stream, const C& obj);
friend std::istream& ::operator>>(std::istream& stream, C& obj);
};
}
|
Fehler:
error: ‘Data::B Game::C::bla2’ is private
error: within this context
error: no match for ‘operator<<’ in ‘stream << obj->Game::C::bla2’
Hab es auch so versucht das die Funktionen innerhalb der namespaces sind.
Das hatte dann nur zur folge das er die function nocht finden konnte.
Fehler:
error: no match for ‘operator<<’ in ‘stream << obj->Game::C::bal2’