int main(int argc, char** argv) { Person ed = person_new("Ed MacDonald"); Person john = person_new("John Doe"); printf("Hello %s.\n", ed->vtable->getName(ed)); ed->vtable->setName(ed, john->vtable->getName(john)); printf("Hello %s.\n", ed->vtable->getName(ed)); //Using the dispatch macro dispatch(ed, setName, "Jane Doe"); printf("Hello %s.\n", dispatch(ed, getName)); person_delete(ed); person_delete(john); }
int main(void) { HSTUDENT student = student_create("XiaoMing", 12, 99); display(student); HPERSON p = (HPERSON)student; display(p); student_delete(student); HPERSON person = person_create("XiaoHua", 11); display(person); HSTUDENT s = (HSTUDENT)person; display(s); person_delete(person); return 0; }