Problem mit Aufruf von templates in einer Funktion
-
Rafzahn schrieb:
Was die Objektorientierung angeht ist Java um einiges komfortabler.
Warum?
-
Michael E. schrieb:
Rafzahn schrieb:
Was die Objektorientierung angeht ist Java um einiges komfortabler.
Warum?
Weil es eingeschränkter ist. Man hat nicht so viele Möglichkeiten es falsch zu machen und merkwürdiges Verhalten zu bekommen.
Java ist darauf ausgelegt, dass man z.B Vererbung polymorph benutzt und somit verhält es sich genau so, wie man es vom OOP Standpunkt her aus kennt.
-
drakon schrieb:
Michael E. schrieb:
Rafzahn schrieb:
Was die Objektorientierung angeht ist Java um einiges komfortabler.
Warum?
Weil es eingeschränkter ist.
Wenn man nicht autofahren kann, ist das Fahrrad komfortabler.
-
volkard schrieb:
drakon schrieb:
Michael E. schrieb:
Rafzahn schrieb:
Was die Objektorientierung angeht ist Java um einiges komfortabler.
Warum?
Weil es eingeschränkter ist.
Wenn man nicht autofahren kann, ist das Fahrrad komfortabler.
Ich hätts jetzt nicht so ausgedrückt, aber im Prinzip ja.

-
SeppJ schrieb:
Ich bin jedoch noch immer entgeistert von der knappen Fehlermeldung. War das wirklich alles?
Was hätte er denn noch schreiben sollen?
Er kannte den Typ nicht - und das hat er uns auch gesagt - wüsste nicht, was er noch ausgeben sollte...
-
drakon schrieb:
volkard schrieb:
drakon schrieb:
Michael E. schrieb:
Rafzahn schrieb:
Was die Objektorientierung angeht ist Java um einiges komfortabler.
Warum?
Weil es eingeschränkter ist.
Wenn man nicht autofahren kann, ist das Fahrrad komfortabler.
Ich hätts jetzt nicht so ausgedrückt, aber im Prinzip ja.

Komisch, immer wenns um den Vergleich von java und cpp geht, läufts immer auf solche Bemerkungen hinaus

-
Rafzahn schrieb:
Komisch, immer wenns um den Vergleich von java und cpp geht, läufts immer auf solche Bemerkungen hinaus

Du musst aber zugeben, dass dein Post ziemlich trollig war. Du stellst eine gewagte These ohne Begründung in den Raum, die Java besser erscheinen lässt als C++. Ich kenne mich mit Java nicht aus, aber hinsichtlich der Unterstützung von OOP sind sich die beiden doch sehr ähnlich. Mir fallen nur kleinere Unterschiede auf bzgl. Mehrfachvererbung, ABC/Interfaces, Name Hiding etc. Ja gut, nicht-statische Memberfunktionen sind in Java automatisch virtual, aber das ist auch nicht das Riesending. Deshalb weiß ich immer noch nicht, was dich zu deiner Annahme verleitet.
-
Nicht zu vergessen, daß in Java die Destruktoren wegfallen. Hab noch nicht so viel Erfahrung mit cpp aber ich denk mal da kann man einen richtig dicken Bock schießen. Heißt keine Memoryleaks dank Garbage-Collection. Man muß nicht eine Zeile Code fürs aufräumen aufbringen. Als würde Mama für einen aufräumen während man selbst die Füße hoch legt
Natürlich auf Kosten der Geschwindigkeit. Aber ich glaube das kann man hinnehmen.Plus die allseits gelobte Plattformunabhänigkeit.
-
Rafzahn schrieb:
Nicht zu vergessen, daß in Java die Destruktoren wegfallen. Hab noch nicht so viel Erfahrung mit cpp aber ich denk mal da kann man einen richtig dicken Bock schießen. Heißt keine Memoryleaks dank Garbage-Collection. Man muß nicht eine Zeile Code fürs aufräumen aufbringen. Als würde Mama für einen aufräumen während man selbst die Füße hoch legt
Natürlich auf Kosten der Geschwindigkeit. Aber ich glaube das kann man hinnehmen.Ein Taxi ist auch besser als ein eigenes Auto

-
Zeus schrieb:
Rafzahn schrieb:
Nicht zu vergessen, daß in Java die Destruktoren wegfallen. Hab noch nicht so viel Erfahrung mit cpp aber ich denk mal da kann man einen richtig dicken Bock schießen. Heißt keine Memoryleaks dank Garbage-Collection. Man muß nicht eine Zeile Code fürs aufräumen aufbringen. Als würde Mama für einen aufräumen während man selbst die Füße hoch legt
Natürlich auf Kosten der Geschwindigkeit. Aber ich glaube das kann man hinnehmen.Ein Taxi ist auch besser als ein eigenes Auto

Da will ich nicht widersprechen und das Taxi kostet in dem Fall nichtmal was

-
Rafzahn schrieb:
Man muß nicht eine Zeile Code fürs aufräumen aufbringen.
Ich liebe diese Einstellung

Java macht ja allea selbstständig

Lass du mal schön wenn du z. B. irgendetwas schließt dein Object in
in irgendwelchen Listenern hängen...Es räumt sich ja alles von alleine auf

Das Objekt wird ja (eigentlich) nicht mehr gebrauchtIch will nicht wissen wie viele Java-N00bs sowas einfach nicht berücksichtigen.
Ein C++-Progger kennt solche Gefahren (spätestens nach leidigen Speicherzugriffsfehlern).EDIT: Mich würd ja mal das Verhältnis zwischen Gebrauch von addListener und
removeListener eines (durchschnittlichen) Java-Programmierers interessieren
-
Rafzahn schrieb:
Nicht zu vergessen, daß in Java die Destruktoren wegfallen.
Aber in Java wird nur der Speicher automatisch verwaltet. Alle anderen Ressourcen, die stark beschränkt sind wie Datenbankverbindungen, oder kollidieren können wie offene Schreibdateien muß man per Hand verwalten.
Hab noch nicht so viel Erfahrung mit cpp aber ich denk mal da kann man einen richtig dicken Bock schießen.
In C++ geschehen eigentlich auch keine Speicherlöcher. Ok, man muß ein wenig üben dafür.
Heißt keine Memoryleaks dank Garbage-Collection. Man muß nicht eine Zeile Code fürs aufräumen aufbringen.
Fürs Aufräumen des Speichers.
Als würde Mama für einen aufräumen während man selbst die Füße hoch legt
Natürlich auf Kosten der Geschwindigkeit. Aber ich glaube das kann man hinnehmen.Ja, die soll mal egal sein.
Aber diese Art der Sicherheit halte ich für ein Anfängerproblem.
Ist man Profi, gilt wohl: Beide Sprachen sind sicher. In C++ sichert man per RAII http://de.wikipedia.org/wiki/Ressourcenbelegung_ist_Initialisierung und in Java? Ich weiß nicht genau. So? http://accu.org/index.php/journals/236
Hmm, das fände ich recht lästig.
-
volkard schrieb:
drakon schrieb:
Michael E. schrieb:
Rafzahn schrieb:
Was die Objektorientierung angeht ist Java um einiges komfortabler.
Warum?
Weil es eingeschränkter ist.
Wenn man nicht autofahren kann, ist das Fahrrad komfortabler.

Genauso ist es...
Warum hat Java keine Mehrfachvererbung?
Wenn man mit etwas nicht umgehen kann, braucht man es ja nicht zu verwenden!!!
-
Plus die allseits gelobte Plattformunabhänigkeit
Unabhängig würd ichs nicht nennen - immerhin muss erst mal ne vm für das system bestehen und auch noch installiert werden.
Da ist C++ in meinen Augen weitaus Unabhängiger - ist wohl aber auch bedingt durch die wesentlich kleinere Standard-Bibliothek.
Wenn man dann Allerdings boost noch mit dazurechnet, hat c++ vrmtl nciht mehr (abgesehen von der weiterhin fehlenden GUI) das nachsehen.In C++ muss man auch keine Einzige Zeile fürs Aufräumen schreiben, wenn man sich das nicht zutraut. Wenn man shared_ptr nimmt hat man Quasi das gleiche - auch "nur" auf Kosten der Performance.
Ich kenn mich auch nicht gut mit Java aus, aber der einzige Vorteil, der mir einfällt, sind die Checked Exceptions oder wie sich das schimpft(Java guckt, welche Exceptions geschmissen werden können, man aber nirgendwo auffängt), was aber leider fast jeden Java-Deppen dazu bringt, einen großen try/catch(...)-block um das ganze zu machen und es dann einfach gut sein lässt.
bb
-
unskilled schrieb:
Ich kenn mich auch nicht gut mit Java aus, aber der einzige Vorteil, der mir einfällt, sind die Checked Exceptions oder wie sich das schimpft(Java guckt, welche Exceptions geschmissen werden können, man aber nirgendwo auffängt), was aber leider fast jeden Java-Deppen dazu bringt, einen großen try/catch(...)-block um das ganze zu machen und es dann einfach gut sein lässt.
bb
Dann hast du sie wohl noch nicht verstanden, mann muss Sie fangen oder in der Methodensiganture vermerken, dass sie geworfen wird.
-
unskilled schrieb:
In C++ muss man auch keine Einzige Zeile fürs Aufräumen schreiben, wenn man sich das nicht zutraut. Wenn man shared_ptr nimmt hat man Quasi das gleiche - auch "nur" auf Kosten der Performance.
Naja... Kreise vernachlässigen wir mal

unskilled schrieb:
Ich kenn mich auch nicht gut mit Java aus, aber der einzige Vorteil, der mir einfällt, sind die Checked Exceptions oder wie sich das schimpft(Java guckt, welche Exceptions geschmissen werden können, man aber nirgendwo auffängt), was aber leider fast jeden Java-Deppen dazu bringt, einen großen try/catch(...)-block um das ganze zu machen und es dann einfach gut sein lässt.
Macht man das etwa nicht so?

Ich erinner mich an einen Kommentar in im Java-Code:
catch(WhichExcpetionEver e){ // Oh... I don't know what to do now... }
-
Dann lieber:
catch(Exception ex) { // There is an Exeception... Bye! }pfui wir sind im C++ Forum nicht im Java Forum :p
-
Jetzt hätte ich doch fast meine Lieblings-Java-Gewohnheit vergessen.
class MyObject implements ObjectInterface{ public void doSomething(){ throw new UnsupportedOperationException(); } }Ja nee...
Is klar...Schön dass Java nur dynamische Vererbung (oder wie sich das auch schimpft) unterstützt
Bei Templates hat man so einen Mist nicht nötig.
Schnittstellen vorgaukeln, die nicht vorhanden sind...
-
unskilled schrieb:
aber der einzige Vorteil, der mir einfällt, sind die Checked Exceptions
Sie werden kontrovers diskutiert.
http://www.mindview.net/Etc/Discussions/CheckedExceptions
-
Dann hast du sie wohl noch nicht verstanden, mann muss Sie fangen oder in der Methodensiganture vermerken, dass sie geworfen wird.
ahja - genau das hab ich doch geschrieben (ok, in die fkt-signatur aufnehmen hab ich weggelassen, weil die main-fkt imho keine werfen darf und man somit dort dann spätestens alles auffangen muss)
volkard schrieb:
Sie werden kontrovers diskutiert.
Wieder was dazu gelernt - danke

mal gucken, ob ich noch genug lange weile habe, das komplett durchzulesen^^bb