tags:

views:

89

answers:

2

Suppose I have a structure in C++ containing a name and a number, e.g.

struct person {

char name[20];

int ssn;

};

Suppose I declare two person variables:

person a;

person b;

where a.name = "George", a.ssn = 1, and b.name = "Fred" and b.ssn = 2.

Suppose later in the code

a = b;

printf("%s %d\n",a.name, a.ssn);
+6  A: 

The default assignment operator does a member-wise recursive assignment of each member.

Jonathan Leffler
+5  A: 

The default assignment operator in C++ uses Memberwise Assignment to copy the values. That is it effectively assigns all members to each other. In this case that would cause b to have the same values as a.

For example

a = b;
printf("%s\n", b.name); // Prints: George
b.name[0]='T';
printf("%s\n", a.Name); // Prints George
printf("%s\n", b.name); // Prints Teorge
JaredPar