单选题 有如下类定义: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;在标注号码的行中,能被正确编译的是( )。
【正确答案】 D
【答案解析】解析:只能通过构造函数的参数初始化列表对常数据成员进行初始化,本题中常数据成员为c。①通过默认构造函数初始化c,所以不正确。常成员函数只能引用本类中数据成员,而不能修改它,所以②不正确。静态成员函数由于没有this指针,所以不能访问本类中的非静态成员,所以③错误。