Describe 데블스캠프2012/다섯째날/C로배우는C++원리 here == 김태진 == {{{ #include #include #include typedef struct Person Person; typedef struct Student Student; struct Person { char name[11]; int age; }; void setName(void* this,const char* name) { Person* this_person = (Person*)this; strncpy(this_person->name, name, 11); } void setAge(void* this, const int age) { Person* this_person = (Person*)this; this_person->age = age; } void print(void* this) { Person* this_person = (Person*)this; printf("name = %s, age = %d\n", this_person->name, this_person->age); } void createPerson(void* this, const char* name, const int age){ // Person* this_person = (Person*)this; setName(this, name); setAge(this,age); } struct Student{ Person parent; char studentID[10]; }; void createStudent(void* this, const char* name, const int age, const char* studentID){ Student* this_student = (Student*)this; createPerson(this, name, age); strncpy(this_student->studentID, studentID, 9); } void printStudent(void* this) { Student* this_student = (Student*)this; Person* this_person = (Person*)this; printf("name = %s, age = %d, studentID = %s\n", this_person->name, this_person->age, this_student->studentID); } int main() { Student *temp = (Student*)malloc(sizeof(Student)); createStudent(temp, "ChungAng", 100,"20121111"); Person *p; p=(Person*)temp; print(p); //printStudent(p); free(p); return 0; } }}}