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

admin2021-06-10  57

问题 有如下类定义:
    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/7tfp777K
0

最新回复(0)