Migliore alternativa alla vecchia funzionalità c ++?
-
03-07-2019 - |
Domanda
c ++ ha fatto molta strada, ha molte funzionalità che portano a fare lo stesso compito in n numero di modi. Quale caratteristica pensi dovrebbe essere evitata ed elenca una migliore alternativa per lo stesso.
Come usare SmartPointers in luoghi di puntatori
Soluzione
Evita malloc, usa new.
Evita memcpy, usa un costruttore di copie.
Evita #defines
, usa const
s.
Evita (C-style) casts
, usa static_cast<C++>( style casts )
.
Evita le macro, usa i modelli.
Evita il post-incremento se puoi usare il pre-incremento.
Evita nuovi, usa raccolte di tipi di valore, lascia che la raccolta gestisca la gestione della memoria.
Evita i puntatori agli oggetti nuovi, usa boost::scoped_ptr
o boost::shared_ptr.
Evita di scrivere il tuo codice per attraversare raccolte, usa <algorithm>
s
Evita di reinventare la ruota, vedi se boost ha quello che ti serve.
Evita " char * name " per memorizzare le stringhe, utilizzare std :: string.
Evita using namespace foo
, usa using foo::bar
.
Evita " dichiarazioni statiche (collegamento interno) " usa spazi dei nomi senza nome.
Altri suggerimenti
usa nuovi cast di stile
static_cast, const_cast, reinterpret_cast, dynamic_cast,
invece dei cast in stile C che non sono più considerati completamente sicuri
preferisce inoltre utilizzare i contenitori STL rispetto al ridimensionamento dinamico degli array in fase di esecuzione