zoukankan      html  css  js  c++  java
  • 20180531-2

    有一个类A,其数据成员如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class A {
    ...
    private:
         int a;
    public:
         const int b;
         float* &c;
         static const char* d;
         static double* e;
    };
    则构造函数中,成员变量一定要通过初始化列表来初始化的是:______。
    a b c
    b c
    b c d e
    b c d
    b
    c

    答案:B 错选:C
    选择B:
    构造函数初始化时必须采用初始化列表一共有三种情况,   
    1.需要初始化的数据成员是对象(继承时调用基类构造函数)   
    2.需要初始化const修饰的类成员   
    3.需要初始化引用成员数据
    因为static属于类并不属于具体的对象,所以 static成员是不允许在类内初始化的,那么static const 成员是不是在初始化列表中呢?
    答案是NO
    一是static属于类,它在未实例化的时候就已经存在了,而构造函数的初始化列表,只有在实例化的时候才执行。
    二是static成员不属于对象。我们在调用构造函数自然是创建对象,一个跟对象没直接关系的成员要它做什么呢
  • 相关阅读:
    Struts2(一)
    MVC初识
    Ajax简述
    策略模式(Strategy)简介
    代理(Proxy)模式简介
    简单工厂模式--工厂方法模式(简介)
    设计模式简介
    面象对象设计原则简介
    Java从零开始学四十一(反射简述二)
    Hibernate(十五)注解
  • 原文地址:https://www.cnblogs.com/kxzh/p/9143990.html
Copyright © 2011-2022 走看看