看到有老师似乎做错了,纠正一下,C++是太烦人了。
一、
下面对静态数据成员的描述中,正确的是
A : 静态数据成员可以在类体内进行初始化
B : 静态数据成员不可以被类的对象调用
C : 静态数据成员不能受private控制符的作用
D : 静态数据成员可以直接用类名调用
解答:
---------------------------------------
A : 静态数据成员可以在类体内进行初始化
答:错。
我记得是:只有静态、常量的整数(及兼容)类型的数据成员,可以在类体内初始化,比如:
class Coo
{
public:
static const int zero = 0; //OK
static const double dzero = 0.0; //部分编译器可支持,但我记得
//C++标准上是说不行的,或许我记错了。
static int iii = 1; //肯定编译不过:非常量静态数据成员不可也!
};
-------------------------------------------
B : 静态数据成员不可以被类的对象调用
答: 错。
完全可以透过一个对象来调用静态数据成员。
以前面为例,可有:
Coo o;
cout << o.zero << endl;
-------------------------------------------
C : 静态数据成员不能受private控制符的作用
错!
-------------------------------------------
D : 静态数据成员可以直接用类名调用
对。唯一正确答案。
----------------------------------------
二、“ 基础题:一个派生类具有多个基类时,该派生类的实例在初始化时按()调用基类的构造函数
A : 声明这些基类的次序
B : 在派生类构造函数初始化列表出现的次序
答: A正确。B错误。
即从左到右。如果出现初始化次序和父类声明次序不对,编译器坚持生成按A所说的次序调用,并可能给出警告。
三、
STL中的哪种结构是连续形式的存储()
A : map
B : set
C : list
D : vector
答:D。标准规定vector中存储的元素数据,必须保证内存连续。
-------------------------------------
如果您想与我交流,请点击如下链接成为我的好友:
http://student.csdn.net/invite.php?u=112600&c=f635b3cf130f350c