问题
单项选择题
有如下类定义:
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
解析: 只能通过构造函数的参数初始化列表对常数据成员进行初始化,本题中常数据成员为C。①通过默认构造函数初始化C,所以不正确。常成员函数只能引用本类中数据成员,而不能修改它,所以②不正确。静态成员函数由于没有this指针,所以不能访问本类中的非静态成员,所以③错误。