Const ist ein Qualifikationsmerkmal, das zum Definieren eines Datenspeicherbereichs (Objekt, Feld, Variable, Parameter) verwendet wird, der sich "nie ändert", wodurch zusätzliche Codegeneratoroptimierungen und zusätzliche statische Überprüfung der Programmkorrektheit ermöglicht werden.
Ich bin mir sicher, dass der folgende Code nicht kompiliert werden sollte. Aber in g ++ kompiliert es! Sehen Sie es kompilieren bei Ссылка .
Der Code:
%Vor%
Ist g ++ falsch, wenn man das kompiliert?
20.12.2011, 02:34
Angenommen, ich habe eine Klasse wie diese:
%Vor%
Gibt es nun einen praktischen Unterschied zwischen dem Zugreifen auf die Objekte dieser Klasse durch Foo& , im Gegensatz zu const Foo& , außer dass diese zwei unterschiedliche Typ...
13.02.2012, 18:55
Ich verstehe die Bedeutung von const für Zeiger oder Strukturen, die durch Verweis auf eine Funktion übergeben werden müssen. Im Beispiel jedoch:
%Vor%
Die Variable a wird auf dem Stack übergeben. Es gibt keinen Schaden für den Aufru...
12.04.2016, 14:17
Dies ist ein Fall von "statisch const" vs "#define" in C " für eingebettete Systeme.
Was ist bei großen / mittleren Projekten mit "übergebenem" Code und Modulen die beste Vorgehensweise beim Schreiben konstanter Parameter für Ihre Include-D...
07.01.2014, 19:00
Wie erzwinge ich die Konstanz des Speichers, auf den obj- & gt; val1 in der Funktion fn zeigt?
%Vor%
Der Code hier ist ziemlich selbst erklärend. Ich muss in der Lage sein, ein nicht-konstantes Objekt zu machen und es mit Daten zu füllen, ab...
04.07.2010, 23:11
Grundsätzlich habe ich folgende Situation. Hinweis: void* wird verwendet, um beliebige Daten zu bezeichnen, sie wird in einer realen Anwendung stark typisiert.
%Vor%
Bei der Suche nach der Korrektheit der Korrektheit wird intermediate_buf...
26.03.2014, 15:56
Ich möchte gerne die Werte für den geraden Wert als const deklarieren, wenn möglich, und durch die Suche nach SO fand ich, dass das ist nicht zu ungewöhnlich . So:
%Vor%
Aber ich frage mich: const für Werte ist ein Implementierungsd...
08.03.2013, 15:36
Ich habe zweieinhalb eng verwandte Fragen. Gegeben ein STL-Iterator-Typ, der als Template-Parameter übergeben wurde:
Wie kann man feststellen, ob der Typ einem const- oder non-const-Iterator entspricht?
Alternativ zu 1., wie (z. B. mit en...
11.05.2013, 15:23
Betrachten Sie den folgenden Code:
%Vor%
Wie ändert man decltype(std::declval<Derived>().f()) so, dass es int und nicht double zurückgibt?
Ich habe versucht decltype(std::declval<const Derived>().f() , aber es kompi...
13.01.2014, 20:48
Bei einer Klasse wie dieser:
%Vor%
Ist es möglich, diese Klasse in einen Vektor zu setzen? Wenn ich es versuche, sagt mir mein Compiler, dass es den Standardzuweisungsoperator nicht verwenden kann. Ich versuche, mein eigenes zu schreiben, ab...
26.05.2010, 22:20