c ++旧功能的更好替代方案?

yes*_*aaj 1 c++ language-features

c ++已经走过了漫长的道路,它有很多功能导致以多种方式完成相同的任务.您认为应该避免哪些功能,并列出更好的替代方案.

就像在指针位置使用SmartPointers一样

tpd*_*pdi 15

避免使用malloc,使用new.

避免使用memcpy,使用复制构造函数.

避免#defines,使用consts.

避免(C-style) casts,使用static_cast<C++>( style casts ).

避免使用宏,使用模板.

如果可以使用预增量,请避免后增量.

避免使用new,使用值类型集合,让集合处理内存管理.

避免指向new'd对象,使用boost::scoped_ptrboost::shared_ptr.

避免编写自己的代码来遍历集合,使用<algorithm>s

避免重新发明轮子,看看助力器是否具备你需要的东西.

避免使用"char*name"来存储字符串,使用std :: string.

避免using namespace foo,使用using foo::bar.

避免"静态(内部链接)声明"使用未命名的命名空间.

  • 我不同意通过使用智能指针避免使用普通指针的概括.至少有两种情况,其中普通指针是可用的:在与使用它们的第三方库接口的情况下,以及在聚合(零或一个多重性)的情况下,聚合器不拥有引用的对象(实现为指针数据成员). (2认同)