Possible Duplicate:
How are C array members handled in copy control functions?
If I don’t override the operator = of a class, it will use default memberwise assignment.
But what does it mean?
struct A {
int array[100];
};
A a;
A b=a;
No error. How does b copes a‘sarray? Normally array_b = array_a is invalid.
Another exampe:
struct A {
vector<int> vec;
};
A a;
A b=a;
How does b copes a‘svec? Through assignment(vec_b = vec_a), constructor(vec_b = vector<int>(vec_a)) or other mystery way?
Is not assignment, it is called as Copy Initialization.
The implicitly generated copy constructor is called to create an new object
bfrom the existing objecta.The implicitly generated copy constructor makes a copy of the
arraymember.For completeness I am going to add here the standard citation from the marked duplicate.
C++03 Standard: 12.8 (Copying class objects)