zoukankan      html  css  js  c++  java
  • Effective C++标题整理

    Effective C++

    话说光看这50个tip又有什么用呢?只有实际使用的时候才体现它们的价值才对。

    就像只看《代码大全》不能成为一个好程序员,必须结合实际写项目经验才行。

    从C转向C++

    条款1:尽量使用const和inline而不用#define
    条款2:尽量用而不用<stdio.h>
    条款3:尽量用new和delete而不用molloc和free

    内存管理

    条款4:尽量使用C++风格的注释
    条款5:对应的new和delete要使用相同的形式
    条款6:析构函数里对指针成员调用delete
    条款7:预先准备好内存不够的情况
    条款8:写operator new和operator delete时要遵循常规
    条款9:避免隐藏标准形式的new
    条款10:如果写了operator new就要同时写operator delete
    条款11:为需要动态分配内存的类声明一个拷贝构造函数和一个复制操作符
    条款12: 尽量使用构造初始化而不要构造函数里赋值
    条款13:初始化列表中成员列出的顺序和他们在类中声明的顺序相同
    条款14:确定基类有虚拟析构函数
    条款15:让operator=返回*this的引用
    条款16:在operator=中对所用数据成员赋值
    条款17:在operator=中检查给自己赋值的的情况

    类和函数:设计与声明

    条款18:争取使类的接口完整并且最小
    条款19:分清成员函数,非成员函数和友元函数
    条款20:避免public接口出现数据成员
    条款21:尽可能使用const
    条款22:尽可能用”传引用"而不用“传值”
    条款23:必须返回一个对象时不要试图返回一个引用
    条款24:在函数重载和设定参数缺省值间慎重选择
    条款25:避免堆指针和数字类型重载
    条款26:当心潜在的二义性
    条款27:如果不想使用隐式生成的函数就要显示地禁止它
    条款28:划分全局名字空间

    类和函数:实现

    条款29:避免返回内部数据的句柄
    条款30:避免这样的成员函数:其返回值是指向成员的非const指针或引用,但成员的访问级比这个函数要低
    条款31:千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用
    条款32:尽可能地推迟变量的定义
    条款33:明智地使用内联
    条款34:将文件间地编译依赖性降至最低

    继承和面向对象设计

    条款35:使公有继承体现“一是一个”地含义
    条款36:区分接口继承和实现继承
    条款37:绝不要重新定义继承而来地非虚函数
    条款38:绝不要重新定义继承而来地缺省参数值
    条款39:避免“向下转换”继承层次
    条款40:通过分层来体现“有一个”和“用...来实现”
    条款41:区分继承和模块
    条款42:明智地使用私有继承
    条款43:明智地使用多继承
    条款44:说你想说的;理解你想说的

    杂项

    条款45:弄清C++在幕后为你所写的、所调用的函数
    条款46:宁可编译和链接使出错,也不要运行时出错
    条款47:确保非局部静态对象在使用前被初始化
    条款48:重视编译器警告
    条款49:熟悉标准库
    条款50:提高对C++的认识
    作者:霊梦
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    详解objc_msgSend
    shell变量类型
    web ssh vnc备忘录
    内存对齐
    vim ctags
    vim csupport 代码 快捷键
    程序在内存中的地址映射
    nginx+php配置
    tmux 复制
    sqlite insert select 联合使用
  • 原文地址:https://www.cnblogs.com/linmeng97blogwzhh/p/9977336.html
Copyright © 2011-2022 走看看