这个题考的是变量的作用域,cout << obj.a << endl;这条语句要打印的是该类的静态变量a的值
最初int Test::a = 0;是对类的静态变量进行初始化, 该变量是属于类的,不属于某个对象
(1)首先:
Test obj; //创建Test对象obj,这条语句会相当于Test obj(6),因为Test(int a = 6) 这个构造函数拥有默认参数a = 6
(2)然后从(1)处得知Test(int a = 6)会被调用
Test(int a = 6) //此处的a为形参,与类的静态变量a不是同一个东西,
{
Init();// 此处会对静态变量a进行赋值1,即选择 B) 1
a++; //这个a是对形参a进行自增操作,和静态成员变量没关系
}
最初int Test::a = 0;是对类的静态变量进行初始化, 该变量是属于类的,不属于某个对象
(1)首先:
Test obj; //创建Test对象obj,这条语句会相当于Test obj(6),因为Test(int a = 6) 这个构造函数拥有默认参数a = 6
(2)然后从(1)处得知Test(int a = 6)会被调用
Test(int a = 6) //此处的a为形参,与类的静态变量a不是同一个东西,
{
Init();// 此处会对静态变量a进行赋值1,即选择 B) 1
a++; //这个a是对形参a进行自增操作,和静态成员变量没关系
}