A-A+

有如下类定义: class Test { public: Test{a=0;c=0;}//①

2022-08-06 05:25:36 问答库 阅读 176 次

问题详情

有如下类定义: class Test { public: Test{a=0;c=0;}//① int f(im A.const{this->a=a;}//② static int g{return a;f//③ void h(int B.{Test:.b=b;};//④ private: int a; static int b; const int C; }; int Test::b=0: 在标注号码的行中,能被正确编译的是()。
A.①
B.②
C.③
D.④请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:D
只能通过构造函数的参数初始化列表对常数据成员进行初始化,本题中常数据成员为C。①通过默认构造函数初始化c,所以不正确。常成员函数只能引用本类中数据成员,而不能修改它,所以②不正确。静态成员函数由于没有this指针,所以不能访问本类中的非静态成员,所以③错误。

考点:定义