假设我在C++中有一个包含名称和数字的结构,例如
struct person {
char name[20];
int ssn;
};
Run Code Online (Sandbox Code Playgroud)
假设我声明了两个人变量:
person a;
person b;
Run Code Online (Sandbox Code Playgroud)
其中a.name ="George",a.ssn = 1,b.name ="Fred",b.ssn = 2.
假设稍后在代码中
a = b;
printf("%s %d\n",a.name, a.ssn);
Run Code Online (Sandbox Code Playgroud)
C++中的默认赋值运算符使用Memberwise Assignment复制值.这就是它有效地将所有成员分配给对方.在这种情况下,会导致b具有与a相同的值.
例如
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9088 次 |
| 最近记录: |