Oggi abbiamo scoperto la causa di un brutto bug che si verificava in modo intermittente solo su determinate piattaforme. In breve, il nostro codice era simile al seguente: class Foo { map<string,string> m; void A(const string& key) { m.erase(key); cout << "Erased: " << key; // oops } void B() …
Sembra che Java abbia avuto il potere di dichiarare le classi non derivabili per secoli, e ora anche C ++. Tuttavia, alla luce del principio Open / Close in SOLID, perché sarebbe utile? Per me, la finalparola chiave suona proprio come friend- è legale, ma se la stai usando, molto …
Come posso vedere, i puntatori intelligenti sono ampiamente utilizzati in molti progetti C ++ nel mondo reale. Sebbene alcuni tipi di puntatori intelligenti siano ovviamente utili per supportare RAII e i trasferimenti di proprietà, c'è anche una tendenza a utilizzare i puntatori condivisi per impostazione predefinita , come un modo …
Java ha un GC automatico che ogni tanto ferma il mondo, ma si occupa della spazzatura su un mucchio. Ora le applicazioni C / C ++ non hanno questi blocchi STW, anche il loro utilizzo della memoria non cresce all'infinito. Come viene raggiunto questo comportamento? Come vengono curati gli oggetti …
Tornati a scuola circa 10 anni fa, ti stavano insegnando a usare gli identificatori di eccezione. Dal momento che il mio background è uno di quei programmatori Torvaldish C che evita ostinatamente il C ++ a meno che non sia costretto a farlo, finisco sporadicamente in C ++ e, quando …
Questo post Stack Overflow elenca un elenco abbastanza completo di situazioni in cui le specifiche del linguaggio C / C ++ dichiarano come "comportamento indefinito". Tuttavia, voglio capire perché altri linguaggi moderni, come C # o Java, non hanno il concetto di "comportamento indefinito". Significa che il progettista del compilatore …
Ho cercato di pensare a un modo per dichiarare dattiloscritti fortemente tipizzati, per catturare una certa classe di bug nella fase di compilazione. È spesso il caso in cui inserirò un int in diversi tipi di ID, o un vettore da posizionare o velocità: typedef int EntityID; typedef int ModelID; …
Ci sono molte funzioni utili in <algorithm>, ma tutte operano su "sequenze" - coppie di iteratori. Ad esempio, se ho un contenitore e mi piace eseguirlo std::accumulate, devo scrivere: std::vector<int> myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); Quando tutto ciò che intendo fare è: int sum = std::accumulate(myContainer, …
Vorrei sottolineare la tua esperienza di IDE su larga scala su Linux. Personalmente lavoro principalmente con vim, tuttavia altri programmatori vorrebbero vedere un vero IDE. Quindi mi piacerebbe sentire la tua opinione personale sui diversi IDE e il confronto tra loro, nel seguente contesto: C ++ e forse un po …
Questo post sul blog è stato pubblicato su Hacker News con diversi voti. Provenienti dal C ++, la maggior parte di questi esempi sembra andare contro ciò che mi è stato insegnato. Come esempio n. 2: Male: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end contro buono: system_monitor.check_for_overheating class …
ipotesi Uno dei vantaggi delle librerie solo intestazione per C ++ è che non devono essere compilate separatamente. In C e C ++ inlineha senso solo se la funzione è definita in un file di intestazione *. Tradizionalmente, in C, è stato utilizzato il layout .c / .h, dove l'intestazione …
Credevo di aver cercato molte volte sui distruttori virtuali, la maggior parte menziona lo scopo dei distruttori virtuali e perché hai bisogno di distruttori virtuali. Inoltre, penso che nella maggior parte dei casi i distruttori debbano essere virtuali. Quindi la domanda è: perché c ++ non rende virtuali tutti i …
Stroustrup afferma che Cfront, il primo compilatore C ++, è stato scritto in C ++ ( Stroustrup FAQ ). Tuttavia, come è possibile che il primo compilatore C ++ sia scritto in C ++? Anche il codice che compone il compilatore deve essere compilato, e quindi il primo compilatore C …
Ieri ho avuto una terribile esperienza in un'intervista. L'intervistatore mi ha chiesto della pura funzione virtuale. Ho detto, può o meno avere una definizione nella classe base, ma le classi derivate dovrebbero fornire una definizione a meno che non vogliano anche essere una classe astratta. Ma l'intervistatore continuava a chiedere …
Sono uno sviluppatore C, C ++. Sono interessato allo sviluppo mobile. Voglio sapere come posso sviluppare app Android usando C e C ++, ho letto che stanno fornendo un kit per sviluppatori C, C ++ ma non ha tutte le funzioni del kit Java. Dovrei scegliere il kit di sviluppo …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.