20180531-2

Posted Kxzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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成员不属于对象。我们在调用构造函数自然是创建对象,一个跟对象没直接关系的成员要它做什么呢

以上是关于20180531-2的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数