I am confused about the following definition of the struct.
struct Matrix{
int a, b;
Matrix(int a =0, b = 0): a(a), b(b){}
} m[26];
What does the statement "Matrix(int a =0, b = 0): a(a), b(b){} " mean and why we need it? Does "m[26]" means we define an array of Matrix?
CodePudding user response:
The m[26]
says to create an array of 26 of the struct Matrix type.
That is fine in C
.
However, the Matrix(int a=0, b==0): a(a), b(b) {}
is specifying a constructor which assigns a
and b
parameters to a
and b
member variables in the struct Matrix
is c
.
CodePudding user response:
Matrix(int a = 0, b = 0) :
a(a), b(b)
{
}
is a constructor with two parameters, a
and b
. They have default values, each being 0.
It initializes its member variables a
and b
with the provided arguments.
You can use it for example like this:
Matrix m1; // initializes a and b with 0 each
Matrix m2(23); // initializes a and b with 23 and 0, respectively
Matrix m3(23, 42); // initializes a and b with 23 and 42, respectively