2010-03-20 15 views
8

Załóżmy, że mam strukturę w C++ zawierającą nazwę i numer, np.Jak domyślny operator przypisania działa w struct?

struct person { 

char name[20]; 

int ssn; 

}; 

Załóżmy, że dwie osoby deklarują zmienne:

person a; 

person b; 

gdzie a.name = "George", a.ssn = 1, a b.name = "Fred" i b.ssn = 2 .

Załóżmy następnie kod

a = b; 

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

Czy istnieje pytanie gdzieś tam? – Turtle

+1

Skydoor wydaje się wierzyć, że SO jest zamiennikiem czytania książek, a nawet myślenia. 129 pytań - zero odpowiedzi. –

+0

Mówiąc o książkach, możesz wskazać 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

Odpowiedz

22

operator domyślny zadanie nie rekurencyjnego przypisanie użytkownika mądry każdego elementu.

+0

doskonała odpowiedź w 1 krótkiej, opisowej odpowiedzi – Sam

+0

Najlepsza odpowiedź, którą widziałem tutaj wśród jednowymiarowych. – hkBattousai

8

Domyślny operator przypisania w C++ używa Memberwise Assignment do kopiowania wartości. Oznacza to, że skutecznie przypisuje się do siebie wszystkich członków. W takim przypadku b będzie miał te same wartości co a.

Na przykład

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 
Powiązane problemy