zoukankan      html  css  js  c++  java
  • Effective C++ 学习笔记(9)

    尽量使用初始化而不是在构造函数里赋值


    class Test
    {
    public:
    int a;
    float b;
    Test():a(
    0),b(0.0) { }
    Test() { a
    =0; b=0.0; }
    };

      初始化与赋值构造函数对内置类型区别不大,而对于非内置类型,如string,为了避免两次构造函数的调用,推荐使用初始化。以下是必须使用初始化的情况:

    1. 对于const和引用类型,只能初始化,不能赋值。
    2. 如果我们的类A有一个类B的成员,而类B没有默认构造函数,而只有带参数的构造函数,这个时候要对类B进行初始化,只能调用初始化表。
    class A
    {
    public:
    A(
    int a)
    {
    cout
    <<"A constructor"<<endl;
    }
    };

    class B
    {
    public:
    B():a(
    1)
    {
    cout
    <<"B constructor"<<endl;
    }
    private:
    A a;
    };

    int main()
    {
    B b;
    return 0;
    }

      

  • 相关阅读:
    服务器切换
    闭包函数
    函数对象+嵌套
    lvs讲解
    了解python
    rang enumerate
    set-集合功能介绍
    元组-tuple功能介绍
    dict-字典功能介绍
    list-列表功能介绍
  • 原文地址:https://www.cnblogs.com/DanielZheng/p/2126136.html
Copyright © 2011-2022 走看看