有如下类定义: class Sample { public: Sample(int x):ref(x) { } //1 private: Sample(){ref=0;} //2 static int val

admin2021-02-22  17

问题 有如下类定义:
class Sample {
public:
     Sample(int x):ref(x) { } //1
private:
     Sample(){ref=0;}         //2
     static int val=5;        //3
     const int ref;           //4
};
上述程序段中,有四个语句编号分别为1、2、3、4,其中错误的语句是

选项 A、1,3
B、2,4
C、2,3
D、3,4

答案C

解析 C++中,不能在类中直接初始化const数据成员,因为在类没有被初始化时,成员是不存在的,所以const数据成员必须在构造函数初始化列表中初始化,语句1、4正确,语句2错误;另外类的static数据成员不能在类定义中初始化,也不能通过类的构造函数进行初始化,而必须在类定义体的外部定义,语句3错误;答案为C。
转载请注明原文地址:https://kaotiyun.com/show/5sfp777K
0

最新回复(0)