Was ist denn mal ne WIRKLICH gute String-Klasse?
-
beinahe, denn mit static geht das, was Optimizer will, afair schon:
class test { public: void tester (int i) { tests[0].tester(i+1); if (i > 100) return; } static test tests[100]; }; test test::tests[100]; int main () { test x; x.tester(0); }
-
Momemt, ich weiß was du meinst, aber ist hier die Methode tester nicht rekursiv?
Auf jeden Fall müsste es mit dem statischen Array gehen, ja. Ich bin darauf ehrlich gesagt gar nicht gekommen. Aber in Java hätte ich es so machen MÜSSEN
EDIT:
Und eine öffentliche statische Variable verhält sich genau wie eine globale Variable. Jeder kann dran rumbasteln wie er will.
Natürlich. Aber du verwechselt sie nicht mehr so leicht, weil jedesmal Klasse:: davor steht. Ich finde es auf jeden Fall eindeutiger. Die meisten Bücher sind auch der Meinung, dass globale Variablen eher schlecht sind.
-
in C++ gibt es aber auch noch namespaces.
-
Natürlich. Aber du verwechselt sie nicht mehr so leicht, weil jedesmal Klasse:: davor steht. Ich finde es auf jeden Fall eindeutiger. Die meisten Bücher sind auch der Meinung, dass globale Variablen eher schlecht sind.
Wenn eine einzelne Variable eindeutig zu einer Klasse von Objekten gehört, sollte Sie auf jeden Fall statisches Mitglied der Klasse sein. Ist diese Zugehörigkeit aber nicht gegeben ist es unsinn Sie einfach in eine Klasse zu packen. Dafür gibt es aber Namensräume. Da es die in Java nicht gibt, ist man gezwungen Sie in eine Klasse zu packen. Man gebraucht (ich sage absichtlich nicht misbraucht) eine Klasse dann als Namensraumersatz, was durchaus legitim ist, da die Sprache keine bessere Art bietet das auszudrücken, was man will. Aber Wie gesagt Java ist nicht C++.
-
wenn ein soldat einen beliebigen aus einer gruppe von feinden killen soll, dann wuerde ich soldat.kill(feinde) sagen.
-
Hm, ich kenne das Grundproblem nicht das Du hast, aber bis jetzt erscheint es mir eher ein Designproblem zu sein als eine schwäche von C++.
Wie Hume bereits sagte: Du kannst in C++ nicht wie in Java Programmieren und wie Volker bereits sagte: Wenn Dir C++ nicht passt und Java lieber ist, musst bei Java bleiben ;o)
-
Ich glaube das Problem mit den Soldaten war eindeutig. Die einzige Lösung (ohne Prototyp) war die mit dem statischen Array, wie davie richtig bemerkt hat.
Und nochmal wegen dem Java: In Java wäre man sofort auf diese Lösung gekommen, weil es dort keine andere Möglichkeit (Prototypen und globale Variablen) gibt. Wir haben also gerade in C++ wie mit Java programmiert.Und vielleicht verstehen jetzt einige, warum die Einschränkungen in Java zu begrüßen sind.
Genauso wie einige Einschränkungen von C++ gegenüber C gut sind. Das war eigentlich der Anfang der Diskussion (aber immer noch Offtopic ;o).
-
Hmm... Da haste mich aber noch nichit davon Überzeugt.
Ich kenne den Kontext nicht in dem es den Soldaten geben soll, aber ich bin mir sicher das man bei einem vernünfitgen Design erst garnicht ein solches Problem hätte ;o)
-
Also ich glaube, der Thread hat so langsam nichts mehr mit dem urspruenglichen Thema zu tun.
mfg
v R
-
Nö das nicht, aber man konnte ein wenig was über Konzepte in Java lernen