2010-03-20 35 views
8

Giả sử tôi có cấu trúc trong C++ chứa tên và số, ví dụ:Toán tử gán mặc định hoạt động như thế nào trong cấu trúc?

struct person { 

char name[20]; 

int ssn; 

}; 

Giả sử Tôi tuyên bố hai biến người:

person a; 

person b; 

nơi a.name = "George", a.ssn = 1, và b.name = "Fred" và b.ssn = 2 .

Giả sử sau này trong mã

a = b; 

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

Có một câu hỏi ở đâu đó trong đó không? – Turtle

+1

Skydoor dường như tin rằng SO là một sự thay thế cho việc đọc sách, hoặc thậm chí là suy nghĩ. 129 câu hỏi - không có câu trả lời. –

+0

Nói về sách, tôi có thể chỉ cho bạn http://www.amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326973/ref=sr_1_1?ie=UTF8&s=books&qid=1269107822&sr=8-1 – wheaties

Trả lời

22

toán tử gán mặc định thực hiện một nhiệm vụ đệ quy thành viên khôn ngoan của từng thành viên.

+0

câu trả lời hoàn hảo trong 1 câu trả lời ngắn, mô tả – Sam

+0

Câu trả lời hay nhất tôi đã thấy ở đây trong số những người một dòng. – hkBattousai

8

Toán tử gán mặc định trong C++ sử dụng Memberwise Assignment để sao chép các giá trị. Đó là nó có hiệu quả gán tất cả các thành viên với nhau. Trong trường hợp này sẽ làm cho b có cùng giá trị như a.

Ví dụ

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 
Các vấn đề liên quan