Templateklassen - Memberzugriff
-
Hi!
Hab folgendes Problemchen:
template<int FOO1> class A { public: template<int FOO2> void Do( A<FOO> x ) { x.i = 10; } private: int i; }; int main() { A<1> a; A<2> b; a.Do( b ); return 0; }Anscheinend darf A<x> nicht auf die privaten Habseligkeiten von A<y> zugreifen. Kann man das irgendwie umgehen?
-
Dir sollte die Lösung bekannt sein: friend.
EDIT: Hier mal dein berichtigter Code^^:
template<int FOO1> class A { template <int FOO1> friend class A; public: template<int FOO2> void Do( A<FOO2> x ) { x.i = 10; } private: int i; }; int main() { A<1> a; A<2> b; a.Do( b ); return 0; }
-
Danke dir, darauf wäre ich nie gekommen! Hab seit Jahren nix mehr mit "friend" gemacht..
