请问12为啥错了?求解答

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;

1、c = 0,c是常量不能改变值
2、加了const所以this变成了常量对象,所以bu值不能通过常量对象来改变

  1. c是常量,不可以函数体内赋值,但可以在初始化列表里赋初值,即可以这样写Test() : c(0) { a = 0; }
  2. f()是const函数,不能修改成员变量