Guybrush Threepwood Geschrieben 1. April 2003 Geschrieben 1. April 2003 Hi, kann mir einer von euch erklären warum ich in C# eine Instanz einer Klasse oder ein Array mit new anlegen muß? In C bzw. C++ braucht man new nur wenn man einen Zeiger initialisiert und deshalb verstehe ich auch nicht warum ich das bei C# (bei Objekten und Arrays) immer brauche:confused: Gruß Guybrush Zitieren
BlearSun Geschrieben 1. April 2003 Geschrieben 1. April 2003 Die Objekte müssen alle mit NEW neu instanziert werden und der Konstruktor wird auch erst zu diesem Zeitpunkt aufgerufen.. Die Datentypen sind davon nicht betroffen(integer, string, double ... ) Diese Vorgehensweise ist unter VB auch nicht anders gewesen und hat sich bestens bewährt, warum genau das allerdings so ist, kann ich dir nicht sagen...Ich weiss nur dass es anders gar nicht geht und es auch nicht unbedigt sinn machen würde..? Wo liegt da das Problem? gruss blear Zitieren
arrayhunter Geschrieben 1. April 2003 Geschrieben 1. April 2003 mit Circle meinKreis deklarierst du nur eine Objektvariable für ein Objekt, d.h. es wird im Prinzip ein Zeiger auf eine speicheradresse gesetzt Mit Circle meinKreis = new Circle() erst mit new beginnt der Lebenslauf des Objektes, d.h. der KOnstruktor wird aufgerufen--> Initialisierung des Objektes Zitieren
Guybrush Threepwood Geschrieben 4. April 2003 Autor Geschrieben 4. April 2003 Ein Problem hab ich damit nicht, es interresiert mich nur warum man sich für den Weg entschieden hat, obwohl es bei C++ nicht so war. BSP für C++: class test { public: test() { i=5; } void ausgabe() { printf("\n%i",i); return; } private: int i; }; main() { test t; t.ausgabe(); return 0; } [/PHP] Es wird eine Instanz der Klasse test angelegt und danch die Variable i ausgegeben. Die new Funktion braucht man nur wenn man einen Zeiger initialisiert: [PHP] main() { test *t; t = new test; t->ausgabe(); return 0; } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.