struct Matrix {
int a, b;
Matrix(int a = 0,int b=0) : a(a),b(b) { }
} m[26];
构造函数中是对里面的成员变量设置默认值,那为什么在上述代码中已经初始化之后还要再加冒号呢?
另外有冒号的这一行是什么意思。新手小白一个,请大神指教,非常感谢
struct Matrix {
int a, b;
Matrix(int a = 0,int b=0) : a(a),b(b) { }
} m[26];
构造函数中是对里面的成员变量设置默认值,那为什么在上述代码中已经初始化之后还要再加冒号呢?
另外有冒号的这一行是什么意思。新手小白一个,请大神指教,非常感谢
Matrix(int a = 0,int b=0)
这个可不是“对里面的成员变量设置默认值”
而是缺省参数
也就是当你用
Matrix m()的时候,相当于Matrix m(0,0)
而Matrix m(123)的时候相当于 Matrix m(123,0)
缺少的参数由你的缺省值补进去
至于这个a b参数,并没有传给作为成员变量的a b!!!