:
struct tnode {
char tword[20];
int count;
tnode* left;
tnode* right;
void set(const char*, tnode* l, tnode* r);
};
void tnode::set(const char* w, tnode* l, tnode* r) {
count = strlen(w)+1;
if (sizeof(tword)<=count)
perror("tnode string too long");
strcpy(tword,w);
left = l;
right = r;
}
void f(tnode n1, tnode n2) {
n1.set("abc",&n2,0);
n2.set("def",0,0);
}
In the body of the member function
tnode::set, the member names
tword,
count,
left, and
right refer to
members of the object for which the function is called
. Thus, in the
call
n1.set("abc",&n2,0),
tword refers to
n1.tword, and in the call
n2.set("def",0,0), it refers
to
n2.tword. The functions
strlen,
perror, and
strcpy are not members of the class
tnode and should be
declared elsewhere
. —
end example