问题
单项选择题
有如下类定义: class Test { public: Test(){a=0;c=0;}//① int f(int a)const {this->a=a;} //② static int g(){return a;}//③ 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
解析: 本题考查了类的定义。一个类的常数据成员的初始化只能在成员初始化列表中进行,所以选项A不正确。常成员函数不能更新对象的数据成员,所以选项B不正确。静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员,所以选项C也不正确。故应该选择D。