J
kingsmile schrieb:
ohne new werden statische objecte erzeugt die im Stack liegen, und deren
Speicherplatz bei funktionsende eben wieder freigegeben wird. Auch die übergabe eines Solchen Objectes als Funktionsparameter erfolgt als Wert, was
bei großen Objecte, geschwindigkeitseinbußen bedeutet.
Nein. Du kannst auch ein dynamisch allokiertes Objekt by value übergeben, oder eins auf dem Stack by reference.
kingsmile schrieb:
der zugriff auf fuktionen und methoden dieser objecte unterscheidet sich
ja wohl bitte auch! (obj.func(); -statisch- obj->func();-dynamisch)
Es geht hier aber um den Unterschied in der Semantik. Oder willst Du jetzt drüber reden, welches der beiden syntaktischen Konstrukte besser ist?
kingsmile schrieb:
werden im kostruktor nur statische objecte erstellt, wird deren speicherplatz automatisch vom standard-destruktor wieder freigeben.
(deswegen automatischer destruktor(??))
Wenn Du den Destruktor selbst implementierst tut er das immer noch. Automatisch deswegen, weil Du ihn nicht von Hand aufrufen mußt (im Gegensatz zum expliziten delete).
kingsmile schrieb:
auch glaube ich zu wissen, dass der zugriff auf statisch erstellte objecte fixer ist(wegen dem Stack), als auf dynamische(Heap).
Da sehe ich prinzipiell erstmal keinen Anlaß dafür. Einzig das anlegen auf dem Stack ist fixer, weil nicht erst nach einem freien Speicherplatz gesucht werden muß.
kingsmile schrieb:
und Pointerfreaks:
mann kann mit sicherheit auch einen pointer auf statische objecte setzen.
nur zeigt der nach ableben des Objectes leider IRGENDWO hin.
und das für die nutzung polymorpher Klassen dynnamische Objecte benötigt
werden, ist doch eigentlch selbsterklärend, wenn man die Worte
POLYMORPH und DYNAMISCH betrachtet.
int * a = new int;
int * b = a;
delete a;
ist das jetzt besser, weil a dynamisch war?
void DoSomething(Printer & printer);
int main()
{
HtmlPrinter printer;
DoSomething(printer);
}
polymorph? ja
dynamisch? nein
so what?
kingsmile schrieb:
also mein tip:
nimm dynamisch objecte.
man muss einfach mit Pointern arbeiten (können).
auch sind dynamische Objecte (besser Pointer auf dynamische objecte) für
fortgeschrittene Programiertechniken voraussetzung.
Pointer sind möglicherweise notwendig. Unabhängig davon worauf sie zeigen. Macht es nen unterschied, wohin er zeigt?
Mein Tipp: Stack-Objekte wenn möglich, dynamische wenn nötig. Denn die die auf dem Stack liegen kannst Du beim aufräumen nicht vergessen.
MfG Jester