假设我在C ++中有一个包含名称和数字的结构,例如
struct person {
char name[20];
int ssn;
};
假设我声明了两个人变量:
person a;
person b;
其中a.name =“George”,a.ssn = 1,b.name =“Fred”,b.ssn = 2.
稍后在代码中假设
a = b;
printf("%s %d\n",a.name, a.ssn);
答案 0 :(得分:24)
默认赋值运算符对每个成员执行成员递归分配。
答案 1 :(得分:9)
C ++中的默认赋值运算符使用Memberwise Assignment来复制值。这就是它有效地将所有成员分配给对方。在这种情况下,这将导致b具有与。
相同的值例如
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