C++ - Zeiger und Referenz mit dem Schlüsselwort new bei der Instanziierung von

Wenn ich will, zu instanziieren einer Klasse in C++ normalerweise gehe ich diesen Weg

Book bk = new Book();

Mein professor hat kürzlich diese

Book &bk = *new Book();

Er nur mir gesagt, er würde verwenden Sie eine Referenz, um in der Lage sein, um den Punkt verwenden (z.B. bk.getTitle ();) - operator anstelle von Pfeil (z.B. bk->getTitle();). Ich verstehe diesen Teil des Codes aber was passiert, wenn Sie mit der * - operator in Kombination mit der neuen?

Vielen Dank im Voraus

das vollständige Codebeispiel finden hier es ist die arraystack in der main-Funktion

  • So Ihr professor zeigte, wie man ein Speicherleck, toll.
  • Wenn dein professor verwendet, der code für alles andere, als ein Beispiel für etwas, das Sie wirklich nicht tun sollten, dann sollten Sie einen neuen professor.
  • Wahrscheinlich ist dein professor gesagt, const Book &bk = Book();. Wenn das nicht der Fall, ich weiß es ehrlich gesagt nicht verstehen, was Ihr Lehrer meinte.
  • Die syntax in der Frage gültig ist, es ist die Semantik, die extrem fehlgeleitet.
  • das vollständige Beispiel finden Sie hier. vielleicht macht dies mehr Sinn dann. das Teil ist in der main-Funktion. seine arraystack. Quelle
  • Jetzt verstehe ich. Aber mit dieser syntax kann ich tun - delete bk;. Ist das nicht ein Fall, wo der Speicher Leck ist unvermeidlich?
  • Sie konnte tun delete &bk, aber das ist immer noch non-sense. @OP Finden Sie einen neuen professor.

InformationsquelleAutor tim | 2012-02-15
Schreibe einen Kommentar