2016-04-27 6 views
1

Auf dem Gelände der cppreference, sehe ich den folgenden Satz:Interpretation von Keyword neu in C++

Dies ist eine Liste der reservierten Schlüsselwort in C++. Da sie von der Sprache verwendet werden, sind diese Schlüsselwörter nicht verfügbar für Re-Definition oder Überladung.

Unter den Stichwörtern gibt es neue. Aber ich weiß, dass wir neue in C++ überladen können. Also ist das obige Zitat falsch oder es gibt etwas anderes dort für das Schlüsselwort neu?

+1

Ich schlage vor, eine alternative Website für C++ Refs zu finden ... Eine mit mehr glaubwürdigen Ruf. Dies wäre einer, aber viele sind verfügbar. https://msdn.microsoft.com/en-us/library/hh875057.aspx – nckbrz

+4

@nixxbb Was ist falsch mit cppreference.com? Es ist viel viel besser als cplusplus.com – NathanOliver

+0

Haben Sie versucht 'void new() {}'? – molbdnilo

Antwort

15

Sie können new nicht überladen. Sie können operator new überladen, das ist die Funktion, die new aufruft, um Speicher zuzuordnen, bevor es das Objekt (die Objekte) erstellt.

+0

Ich meine neu kann nur sein ein Betreiberrecht? Was ist der Zweck, einen Operator als Schlüsselwort zu definieren? Wenn wir nicht "neu" als Schlüsselwort im C++ - Standard festlegen, können wir immer noch das Neue verwenden, um das zu tun, was es jetzt tut. Betrachten Sie einfach das Neue als vordefinierte Funktion, richtig? –

+0

@gab - nein, das Schlüsselwort 'new' kann nicht als Funktion implementiert werden. Es muss über Typen und ihre Konstruktoren wissen, für die der Compiler verantwortlich ist. –