美文网首页
2018-09-15

2018-09-15

作者: H丶hard | 来源:发表于2018-09-16 15:31 被阅读0次

    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];    //指定一个无效的数组索引导致不明确行为。
    
    • 学会关注线程的安全性问题

    相关文章

      网友评论

          本文标题:2018-09-15

          本文链接:https://www.haomeiwen.com/subject/prmtnftx.html