Innere Klassen in Java und C++
-
Koennte bitte mal jemand die Unterschiede von inneren Klassen in Java und C++ aufschreiben(evtl. pro contra)?
thx in advance
-
static inner classes von Java entsprechen den inner classes von C++.
nonstatic inner classes kennt C++ nicht.Pro und contra erübrigt sich damit, weil Java beides kann. Mal braucht man das eine, mal das andere.
-
Sind 'nested classes' und 'inner classes' das selbe?
-
-
Mag sein, dass ich mich jetzt ein wenig aus dem Fenster lehne, hab auch keine Luste das nachzuschlagen: Aber ich glaube, der einzige Unterschied zwischen Javas statischen inneren Klassen und den eingeschachtelten Klassen von C++ liegt darin, dass innere Klassen in Java logisch mit zur äußeren Klasse gehören, während sie in C++ völlig unabhängig voneinander sind. Das äußert sich konkret darin, dass sie in Java die privaten Elemente der äußeren Klasse sehe können, in C++ nicht.
Bitte korrigieren, falls das Unsinn ist
-
@Bashar
Jup. Hier mal ein kleines Beispiel zur Untermalungpublic class innerclass { private static int moep=10; static public class foo { public void bar() { moep+=10; } } void baz() { foo m=new foo(); m.bar(); } }
class innerclass { static int moep=10; public: struct foo { void bar() { moep+=10; } //FEHLER: moep ist unbekannt }; void baz() { foo m; m.bar(); } };
-
Ist, dass in Java die inner-classes Zugriff auf die Privaten Elemente ihrer auesseren Klasse haben wirklich der einzige Unterschied?
In Java koennen die auesseren Klassen doch auch auf die privaten Elemente ihrer inneren Klassen zugreifen.
Das kann man doch in C++ AFAIK nicht.
-
Kannst du in Java auch nicht. Wenn das gehen würde, wäre es ja fast vollkommen sinnlos.
-
Bei statischen inneren Klassen aber schon.
Umfassende Klassen koennen auf private Programmelemente in tiefer geschachtelten Klassen zugreifen.
-
Stimmt. Find ich hässlich.
-
Ist doch richtig, dass man das in C++ nicht kann, oder?