Vedo spesso nel codice C e C ++ la seguente convenzione: some_type val; val = something; some_type *ptr = NULL; ptr = &something_else; invece di some_type val = something; some_type *ptr = &something_else; Inizialmente supponevo che fosse un'abitudine rimasta dai giorni in cui dovevi dichiarare tutte le variabili locali in …
Ho imparato un po 'di C ++ e spesso devo restituire oggetti di grandi dimensioni da funzioni create all'interno della funzione. So che c'è il passaggio per riferimento, restituisce un puntatore e restituisce soluzioni di un tipo di riferimento, ma ho anche letto che i compilatori C ++ (e lo …
Ho sentito della popolarità del C ++ moderno e alcuni discorsi sulla migrazione al C ++ da C # o altri linguaggi simili al C. Conosco le funzionalità di C ++ 11 ma vorrei ascoltare le tue esperienze, in particolare dagli sviluppatori che sono passati da C # a C …
Nei linguaggi che distinguono tra un file "source" e "header" (principalmente C e C ++), è meglio documentare le funzioni nel file header: ( rubato dal CCAN ) /** * time_now - return the current time * * Example: * printf("Now is %lu seconds since epoch\n", (long)time_now().tv_sec); */ struct timeval …
Come programmatore C # di lunga data, di recente ho imparato di più sui vantaggi di Resource Acquisition Is Initialization (RAII). In particolare, ho scoperto che il linguaggio C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } ha l'equivalente in C ++: { DbConnection …
A volte Java supera C ++ nei benchmark. Certo, a volte C ++ supera. Vedi i seguenti link: http://keithlea.com/javabench/ http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ http://blog.cfelde.com/2010/06/c-vs-java-performance/ Ma come è possibile? Mi sorprende il fatto che interpretato dal codice potrebbe mai essere più veloce di un linguaggio compilato. Qualcuno può spiegare per favore? Grazie!
Esistono alcuni linguaggi di programmazione per i quali esiste un sistema di gestione dei pacchetti: CTAN per TeX CPAN per Perl Pip e uova per Python Maven per Java cabala per Haskell Gemme per Ruby npm per NodeJS bower per frontend Javascript e CSS nuget per C # compositore per …
A volte ti imbatti in una situazione in cui devi estendere / migliorare un po 'di codice esistente. Vedi che il vecchio codice è molto snello, ma è anche difficile da estendere e richiede tempo per la lettura. È una buona idea sostituirlo con un codice moderno? Qualche tempo fa …
Sto cercando di capire la differenza tra linguaggi procedurali come C e linguaggi orientati agli oggetti come C ++. Non ho mai usato C ++, ma ho discusso con i miei amici su come differenziare i due. Mi è stato detto che C ++ ha concetti orientati agli oggetti e …
Stroustrup dice "Non inventare immediatamente una base unica per tutte le tue classi (una classe Object). In genere, puoi fare di meglio senza di essa per molte / la maggior parte delle classi." (Il linguaggio di programmazione C ++ Quarta edizione, Sezione 1.3.4) Perché una classe base per tutto è …
Nel tutorial di Python si può leggere che l'implementazione originale di Python è in C; D'altra parte, l'implementazione di Python, scritta in C, (...) Sono molto curioso perché Python è stato scritto in C e non in C ++? Mi piacerebbe conoscere il ragionamento alla base di questa decisione e …
Anche se concordo sul fatto che catturare ... senza ricrescere sia effettivamente sbagliato, tuttavia credo che usare costrutti come questo: try { // Stuff } catch (...) { // Some cleanup throw; } È accettabile nei casi in cui RAII non è applicabile . (Per favore, non chiedere ... non …
Molte domande e risposte sulle pagine C / C ++, in particolare o indirettamente, discutono problemi di micro prestazioni (come il sovraccarico di una funzione indiretta vs diretta vs in linea) o usando un algoritmo O (N 2 ) vs O (N log N) su un elenco di 100 articoli. …
C ++ 17 introduce l' [[nodiscard]]attributo, che consente ai programmatori di contrassegnare le funzioni in modo tale che il compilatore produca un avviso se l'oggetto restituito viene scartato da un chiamante; lo stesso attributo può essere aggiunto a un intero tipo di classe. Ho letto la motivazione di questa funzionalità …
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.