Als «c++» getaggte Fragen

150
Was ist der Sinn von g ++ -Wreorder?

Die Option g ++ -Wall enthält -Wreorder. Was diese Option bewirkt, wird unten beschrieben. Mir ist nicht klar, warum es jemanden interessieren würde (insbesondere genug, um dies standardmäßig in -Wall einzuschalten). -Wororder (nur C ++) Warnen, wenn die im Code angegebene Reihenfolge der...

150
Wie generiere ich eine Zufallszahl in C ++?

Ich versuche ein Spiel mit Würfeln zu machen, und ich muss Zufallszahlen enthalten (um die Seiten des Würfels zu simulieren. Ich weiß, wie man es zwischen 1 und 6 macht). Verwenden von #include <cstdlib> #include <ctime> #include <iostream> using namespace std; int main() {...

150
Standardargumente für Vorlagen

Wenn ich Folgendes tun darf: template <typename T = int> class Foo{ }; Warum darf ich hauptsächlich nicht folgendes tun? Foo me; Aber ich muss folgendes angeben: Foo<int> me; In C ++ 11 wurden Standardvorlagenargumente eingeführt, die meines Erachtens derzeit nur schwer zu verstehen...

149
Warum sind Arrays von Referenzen illegal?

Der folgende Code wird nicht kompiliert. int a = 1, b = 2, c = 3; int& arr[] = {a,b,c,8}; Was sagt der C ++ - Standard dazu? Ich weiß, ich könnte eine Klasse deklarieren, die eine Referenz enthält, und dann ein Array dieser Klasse erstellen, wie unten gezeigt. Aber ich möchte wirklich wissen,...

149
C ++ - Semantik von `static const` vs` const`

Was sind speziell in C ++ die semantischen Unterschiede zwischen zum Beispiel: static const int x = 0 ; und const int x = 0 ; sowohl staticals Verknüpfungs- als auch als Speicherklassenspezifizierer (dh innerhalb und außerhalb einer

149
Was ist der Sinn von const-Zeigern?

Ich spreche nicht von Zeigern auf const-Werte, sondern von const-Zeigern selbst. Ich lerne C und C ++ über das Grundlegende hinaus und habe bis heute festgestellt, dass Zeiger wertmäßig an Funktionen übergeben werden, was Sinn macht. Dies bedeutet, dass ich innerhalb einer Funktion den kopierten...

149
Warum ist x [0]! = X [0] [0]! = X [0] [0] [0]?

Ich lerne ein wenig C ++ und kämpfe mit Zeigern. Ich verstehe, dass ich 3 Zeigerebenen haben kann, indem ich Folgendes erkläre: int *(*x)[5]; Das *xist also ein Zeiger auf ein Array von 5 Elementen, auf die Zeiger sind int. Auch weiß ich , dass x[0] = *(x+0);, x[1] = *(x+1)und so weiter .... Warum...

149
Warum haben Typen immer eine bestimmte Größe, unabhängig von ihrem Wert?

Implementierungen können sich zwischen den tatsächlichen Größen der Typen unterscheiden, aber in den meisten Fällen sind Typen wie unsigned int und float immer 4 Byte. Aber warum belegt ein Typ unabhängig von seinem Wert immer eine bestimmte Menge an Speicher? Zum Beispiel, wenn ich die folgende...

148
Statische Elementinitialisierung in einer Klassenvorlage

Ich würde das gerne machen: template <typename T> struct S { ... static double something_relevant = 1.5; }; aber ich kann nicht, da something_relevantes nicht vom integralen Typ ist. Es hängt nicht davon ab T, aber vorhandener Code hängt davon ab, dass er ein statisches Mitglied von ist...

148
Wie funktioniert `void_t`?

Ich habe Walter Browns Vortrag auf der Cppcon14 über moderne Vorlagenprogrammierung ( Teil I , Teil II ) gesehen, in dem er seine void_tSFINAE-Technik vorstellte. Beispiel: Bei einer einfachen Variablenvorlage, die bewertet, voidob alle Vorlagenargumente gut geformt sind: template< class ......

147
C ++ als veraltet markieren

Ich habe eine Methode in einer Schnittstelle, die ich mit portablem C ++ verwerfen möchte. Als ich danach googelte, bekam ich nur eine Microsoft-spezifische Lösung. #pragma veraltet und __declspec (veraltet) . Eine Lösung mit dem zweiten Preis wäre, eine MSVC- und eine GCC-Lösung zu definieren....

147
Ermitteln des Objekttyps in C ++

Ich habe eine Klasse A und eine andere Klasse, die davon erbt, B. Ich überschreibe eine Funktion, die ein Objekt vom Typ A als Parameter akzeptiert, also muss ich ein A akzeptieren. Später rufe ich jedoch Funktionen auf, die nur B hat. Daher möchte ich false zurückgeben und nicht fortfahren, wenn...

147
Linux c ++ Fehler: undefinierter Verweis auf 'dlopen'

Ich arbeite unter Linux mit C ++ (Eclipse) und möchte eine Bibliothek verwenden. Eclipse zeigt mir einen Fehler: undefined reference to 'dlopen' Kennen Sie eine Lösung? Hier ist mein Code: #include <stdlib.h> #include <stdio.h> #include <dlfcn.h> int main(int argc, char...