Das Dynamischen Speicher nichtmehr freigegen wird hängt wohl vom Programmierer ab^^
Ich habe da eine Theorie warum bei C++ oder Java oft Memory Leaks entstehen.
Das ist eine Sprache die man auch schon vom Normalen Computer kennt. Z. B. "Visual C++ Runtime" für Spiele oder Java vom Browser. Jetzt will man auch mal eine Programmiersprache lernen. Natürlich nimmt man eine, von der man schonmal etwas gehört hat. Somit kommen immer mehr Programmierer die keine Ahnung haben ( Damit könnte auch ich gemeint sein ;-) ) und machen die Anfänger Fehler.
Zu dem Exception Handling: In C++ muss man erst einen Scope erstellen, in dem dann der Exceptions "geworfen" und "gefangen" werden kann. Der Vorteil ist halt hierbei, das wenn ein Exception "geworfen" und "gefangen" wurde, der gesammte Code in dem Scope rückgängig gemacht wird. D.h. lokale Variablen und angelegter dynamischer Speicher werden einfach wieder gelöscht. Dann kann das Programm einfach wieder weiterlaufen ohne mit einem Kryptischen Fehlercode beendet oder mit Speicherleichen weiter laufen zu müssen ;-)
Jetzt noch etwas zum Überladen von Funktionen ( Man kann auch Operatoren überladen ): Kein Programmierer würde in seinem Quellcode n Funktionen mit dem selben Namen erstellen, die jeweils etwas ganz anderes machen
Man benutzt die Überladung von Funktionen z.B. bei einer Funktion die 2 Zahlen zusammen rechnet:
int Addition( int Summand1, int Summand2 )
{
return Summand1 + Summand2;
}
float Addition( float Summand1, float Summand2 )
{
return Summand1 + Summand2;
}
Ich denke man versteht was ich meine^^
Bei einfachen Dingen wie oben bietet sich es auch an ein Template zu benutzen:
template <class Typ>
Typ Addition( Typ Summand1, Typ Summand2 )
{
return Summand1 + Summand2;
}
Aber wenn man nicht jeden beliebigen Typ einsetzen darf, würde ich Überladen
Ja natürlich kann man mit C auch sehr gut Module basteln, aber da hat man die Hauptfunktionen in der Headerdatei und noch ein paar Nebenfunktionen in der Codedatei... Naja mir würde das nicht gefallen
Ich denke auch das es Ansichtssache ist und ich würde vorschlagen, das wir uns auf ein Gleichgut einigen =)