zoukankan      html  css  js  c++  java
  • 30)构造函数的初始化列表

    初始化你的类的成员变量,不能在定义那块给初始化,必须在  构造函数那里,或者在 初始化列表那里

    就是  你想要 初始化 一个类的对象成员,你需要把他写在你的  初始化参数列表里面

    类成员是对象  在初始化列表那里 初始化

    类成员是常量,,在初始化列表那里初始化

    1)如果  我们有一个类成员,他本身是一个类或者一个结构,而且这个成员它只有一个带参数的构造函数,没有默认的构造函数,这时要对这个类成员进行初始化,

      就必须调用这个类成员带参数的构造函数

      如果没有初始化列表,那么他将无法完成第一步,就会报错。

    2)在一个类A中,有另一个类B,然后,我在A的构造函数中初始化B,没法写,比如:

     1 //我就是想用B的构造函数来初始化B的成员变量
     2 class A{
     3 
     4   private 5             B b1;
     6             B b2;
     7             int   a;
     8   public 9             A(B &b1,B &b2,int a)
    10              {
    11                this->a=a;
    12                b1=b1;      //这个调用的是那个构造符函数(=),这个不是调用B的构造函数
    13                b1(b1);  //这个是将b1看成一个函数了,这个不行,这个不是调用的B的构造函数,
    14                
    15               }
    16 
    17 
    18 
    19 
    20 }                    

    3)所以就有了  构造函数的初始化列表这个东西。

      

    4)构造对象成员的顺序和初始化列表的顺序无关,而是和成员对象的定义顺序有关

        

      private            B b1;
                 B b2;
                 int   a;
    5)还有这个里面的 a初始化 也可以这样:
    1 public2         B(int a):a(103 {
    4     //然后这个里面什么东西也没有,或者可以加别的东西,反正对变量的初始化,没有了
    5 }
    详细可以见:台式机的桌面:
      C:Documents and SettingsAdministrator桌面C++基础教程完整版视频2_C++基础day033_视频    第十一个视频
    6)常量 初始化,也是在初始化列表中,初始化。
      就是  类中变量含有 const 型的变量,必须在初始化列表中初始化它
      

      
  • 相关阅读:
    “持咒”到底是个什么东西?再论语言和思维关系
    传说中的噪声
    电源噪声(EMI)滤波器的基本原理与应用方法
    Like a rock,like the weather man【转】
    allegro笔记
    Taxicab geometry和Euclidean geometry
    hql和sql的区别
    SpringMVC与Struts2的区别
    ExtJS 学习专题如何应用ExtJS
    编程式事务和声明式事务
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8183904.html
Copyright © 2011-2022 走看看