Im Gegensatz zur geschützten Vererbung fand die private C ++ - Vererbung Eingang in die Mainstream-C ++ - Entwicklung. Ich habe jedoch immer noch keine gute Verwendung dafür gefunden. Wann benutzt ihr
Im Gegensatz zur geschützten Vererbung fand die private C ++ - Vererbung Eingang in die Mainstream-C ++ - Entwicklung. Ich habe jedoch immer noch keine gute Verwendung dafür gefunden. Wann benutzt ihr
Ich habe eine Multithread-App, die einige Daten häufig lesen muss, und gelegentlich werden diese Daten aktualisiert. Momentan schützt ein Mutex den Zugriff auf diese Daten sicher, aber es ist teuer, weil ich möchte, dass mehrere Threads gleichzeitig lesen können und sie nur dann sperren, wenn ein...
Ich las eine andere Frage bezüglich der Effizienz von zwei Codezeilen, und das OP sagte, dass er die Baugruppe hinter dem Code betrachtete und beide Zeilen in der Baugruppe identisch waren. Abgesehen von Exkurs, wie könnte ich den Assembler-Code anzeigen, der beim Kompilieren eines Programms...
Ist es möglich, einem Parameter einer Funktion einen Standardwert zuzuweisen, während wir den Parameter als Referenz übergeben? in C ++ Zum Beispiel, wenn ich versuche, eine Funktion wie folgt zu deklarieren: virtual const ULONG Write(ULONG &State = 0, bool sequence = true); Wenn ich das...
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 6 Jahren . Verbessere diese Frage...
Ich hatte kürzlich ein Klassenprojekt, in dem ich ein Programm mit G ++ erstellen musste. Ich habe ein Makefile verwendet und aus irgendeinem Grund hat es gelegentlich eine .h.gch-Datei zurückgelassen. Manchmal hatte dies keine Auswirkungen auf die Kompilierung, aber von Zeit zu Zeit gab der...
Ich wollte kürzlich boost :: algorithm :: join verwenden , konnte aber keine Anwendungsbeispiele finden und wollte nicht viel Zeit in das Erlernen der Boost Range-Bibliothek investieren, nur um diese eine Funktion zu verwenden. Kann jemand ein gutes Beispiel für die Verwendung von Join für einen...
Der folgende Code gibt mir einen Segmentierungsfehler, wenn er auf einem 2-GB-Computer ausgeführt wird, funktioniert jedoch auf einem 4-GB-Computer. int main() { int c[1000000]; cout << "done\n"; return 0; } Die Größe des Arrays beträgt nur 4 MB. Gibt es eine Begrenzung für die Größe eines...
Ich muss zwei konstante Zeichen wie diese verketten: const char *one = "Hello "; const char *two = "World"; Wie könnte ich das machen? Ich habe diese char*s von einer Drittanbieter-Bibliothek mit einer C-Schnittstelle erhalten, sodass ich sie nicht einfach verwenden kann
Vor vielen Jahren waren C-Compiler nicht besonders intelligent. Um dieses Problem zu umgehen, hat K & R das Schlüsselwort register erfunden , um den Compiler darauf hinzuweisen, dass es möglicherweise eine gute Idee wäre, diese Variable in einem internen Register zu belassen. Sie haben auch den...
Ich habe das Gefühl, ich muss es einfach nicht finden können. Gibt es einen Grund, warum die C ++ - powFunktion die "Power" -Funktion nur für floats und doubles implementiert ? Ich weiß, dass die Implementierung trivial ist. Ich habe nur das Gefühl, dass ich Arbeiten mache, die in einer...
Mein Projektverzeichnis sieht folgendermaßen aus: /project Makefile main /src main.cpp foo.cpp foo.h bar.cpp bar.h /obj main.o foo.o bar.o Ich möchte, dass mein Makefile alle .cppDateien im /srcOrdner mit .oDateien im /objOrdner kompiliert und dann alle .oDateien /objin der...
Es ist möglich, eine Funktion zu schreiben, die beim Kompilieren mit einem C-Compiler 0 und beim Kompilieren mit einem C ++ - Compiler 1 zurückgibt (die triviale Lösung mit #ifdef __cplusplusist nicht interessant). Beispielsweise: int isCPP() { return sizeof(char) == sizeof 'c'; } Natürlich...
Abbildung 1: Funktionsvorlagen TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instantation template void f<T>(); Main.cpp #include "TemplHeader.h" extern template void f<T>(); //is this correct? int main() {...
Warum kann ich kein nicht konstantes staticMitglied oder staticArray in einer Klasse initialisieren ? class A { static const int a = 3; static int b = 3; static const int c[2] = { 1, 2 }; static int d[2] = { 1, 2 }; }; int main() { A a; return 0; } Der Compiler gibt folgende Fehler...
Ich habe eine Klasse namens Writer, die eine Funktion writeVectorwie folgt hat: void Drawer::writeVector(vector<T> vec, bool index=true) { for (unsigned int i = 0; i < vec.size(); i++) { if (index) { cout << i << "\t"; } cout << vec[i] << "\n"; } } Ich versuche,...
Also habe ich folgendes: std::vector< std::vector <int> > fog; und ich initialisiere es sehr naiv wie: for(int i=0; i<A_NUMBER; i++) { std::vector <int> fogRow; for(int j=0; j<OTHER_NUMBER; j++) { fogRow.push_back( 0 ); } fog.push_back(fogRow); } Und es fühlt...
Es scheint, dass das argv[argc]immer NULLso ist , also denke ich, dass wir die Argumentliste ohne durchlaufen können argc. Eine einzelne whileSchleife wird dies tun. Wenn es NULLam Ende immer eine gibt argv, warum brauchen wir dann eine
Als interessante Folge (allerdings nicht von großer praktischer Bedeutung) zu meiner vorherigen Frage: Warum erlaubt C ++ uns, den Variablennamen beim Deklarieren einer Variablen in Klammern zu setzen? Ich fand heraus, dass das Kombinieren der Deklaration in Klammern mit der Funktion für injizierte...
std::swap()wird von vielen Standardcontainern (wie std::listund std::vector) beim Sortieren und sogar beim Zuweisen verwendet. Die Standardimplementierung von swap()ist jedoch sehr verallgemeinert und für benutzerdefinierte Typen eher ineffizient. Somit kann Effizienz durch Überladen std::swap()mit...