Ein wörtliche ist ein deklaratives Objekt, aber ich denke, dass vielleicht Sie werden immer auf einer Unterscheidung, der Primitiven und Gegenstände aufgehängt. Primitive sind Objekte und können leicht als Objekte betrachtet werden, aber aufgrund der Notation und des Fehlens von Mitgliedern kann man leicht erkennen, warum sie als Objekte wahrgenommen werden können. Daher ist es leicht zu verstehen, warum man denken könnte, dass ein Literal kein Objekt ist, weil Literale normalerweise Grundelemente definieren (nicht viele komplexe Datenstrukturen sind in Literalen leicht zu definieren).
jedoch ein primitives ist ein Objekt (kein brauchbarer Grund, sie als Objekte nicht definieren), weil es ein Mitglied einer Art ist. Da es sich also nur um eine statische Definition eines Objekts handelt, sind sie auch ein Objekt, mit dem wir nicht genauso interagieren wie mit anderen Objekten, weil sie statisch sind.
Während die Idee, dass ein Literal kein Objekt ist, wahrscheinlich keine Probleme im Code verursachen wird, kann es OOP komplizierter machen, besonders da die Idee von OOP darin besteht, dass wir mit Objekten in der Programmierung interagieren sollten, weil wir damit interagieren alles außerhalb der Programmierung.
"Literale sind keine Objekte" ist eine falsche Aussage. – George
@George Aber warum? Es gibt einen Anspruch im Standard "Eine Entität ist ein Wert, ein Objekt, eine Referenz, eine Funktion, ein Enumerator, ein Typ, ein Klassenmitglied, eine Vorlage, eine Vorlagenspezialisierung, ein Namespace, ein Parameterpaket oder dies." Ich denke, dass dies bedeutet, dass Werte keine Objekte sind. Und wörtlich ist ein fester Wert. Liege ich falsch? – Rodvi
Ja, obwohl diese Aussage vielleicht etwas verwirrend ist, ein Wert, ref, (instanziert oder statisch) Klassenmitglied, und das sind alle Objekte. Genauso wie "das" ein Klassenmitglied ist. Sie sollten sich wahrscheinlich [The Definitive C++ Buch Guide and List] ansehen (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – George