Лучшая альтернатива для старой функции c ++? - PullRequest
1 голос
/ 04 мая 2009

C ++ прошел долгий путь, он обладает множеством функций, которые приводят к выполнению одной и той же задачи несколькими способами. Какую функцию, по вашему мнению, следует избегать, и перечислите лучшую альтернативу для того же.

Как использовать SmartPointers в местах указатели

Ответы [ 2 ]

15 голосов
/ 04 мая 2009

Избегайте malloc, используйте новый.

Избегайте использования memcpy, используйте конструктор копирования.

Избегайте #defines, используйте const с.

Избегайте (C-style) casts, используйте static_cast<C++>( style casts ).

Избегайте макросов, используйте шаблоны.

Не используйте постинкремент, если вы можете использовать прединкремент.

Избегайте новых, используйте коллекции типов значений, пусть коллекция занимается управлением памятью.

Избегайте указателей на новые объекты, используйте boost::scoped_ptr или boost::shared_ptr.

Избегайте написания собственного кода для обхода коллекций, используйте <algorithm> s

Старайтесь не изобретать велосипед, посмотрите, есть ли в бусте то, что вам нужно.

Избегайте "char * name" для хранения строк, используйте std :: string.

Избегайте using namespace foo, используйте using foo::bar.

Избегайте «статических (внутренних ссылок) объявлений», используйте безымянные пространства имен.

1 голос
/ 05 мая 2009

использовать новый стиль приведения

static_cast, const_cast, reinterpret_cast, dynamic_cast,

вместо бросков в стиле C, которые больше не считаются полностью безопасными

также предпочитают использовать контейнеры STL вместо динамически изменяемых массивов во время выполнения

...