2018-09-15

Effective c++第三版

绪论

std::size_t是一个typedef,属于unsigned类型。

  • 构造函数被声明为explicit,可阻止被用来执行隐式类型转化
class A
{
public:
    A();    //默认构造函数
};
class B
{
public:
    explicit B(int x = 0, bool b = true);    //默认构造函数
};
class C
{
public:
    explicit C(int x);    //非默认构造函数
};
void doSomething(B bObeject);    函数,接收一个类型为B的对象
B bObj1;     //一个类型为B的对象
doSomething(bObj1);    //没有问题,传递一个B给doSomething函数
B bObj2(28);    //没有问题,根据int 28建立一个B
doSomething(28);    //错误!,doSomething应该接收一个B,不是int,而int至B
                    //没有隐式转换。
doSomething(B(28));    //正确,使用
  • 通过值传递的方式传给函数通常不建议采用,建议采用常引用传递的方式。:详见条款20
  • 避免不明确的行为如:
int* p = 0;    //p是个null指针
std::cout << *p;    //对于一个null指针取值会导致不明确行为。
char name [ ] = "Darla";    //name是个数组,大小为6
char c = name[10];    //指定一个无效的数组索引导致不明确行为。
  • 学会关注线程的安全性问题
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:...
    Envisage_802b阅读 233评论 0 2
  • Mybatis 概念 SqlSessioncan execute commands, get mappers an...
    设限无限阅读 2,029评论 2 31
  • 在Excel表格中,日期经常是作为其中的一部分内容,呈现在表格中,在Excel中,日期就是一组特殊的序列值,比如在...
    万能之林阅读 529评论 0 0
  • 陪孩子游学西安,原本20年前就颇具感情的一个地方,好吃的釀皮,神秘的古城墙,高深莫测的兵马俑,闭眼就隐约...
    天天开心_cf6b阅读 182评论 0 0
  • 假如我今天逝去 你是否会大声哭泣 让我听到你的真心 从此不再含蓄 假如我今天逝去 你是否会继续努力 让我的灵魂附体...
    张一德阅读 291评论 0 0

友情链接更多精彩内容