MY MEMO
[C] 개념 다지기 - struct, Overloading 본문
+)
Overloading, Overriding 차이?
Overloading : 같은 이름의 method를 사용하는 것
Overriding : 상속 후 부모의 method를 변경하는 것
Overriding의 예시
출처 : http://itpangpang.xyz/105
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <stdio.h> #include <stdlib.h> //malloc 정의 typedef struct { char *brand; int model; }vehicle; struct temp { int x; int y; }; //함수의 overloading 허용되지 않음 //모든 함수의 이름이 달라야함 void show_point( int x, int y) { printf ( "1 : %d %d \n" , x, y); } void show_point_temp( struct temp p1) { printf ( "2 : %d %d \n" , p1.x, p1.y); } void show_point_pointer_temp( struct temp *p1) { printf ( "3 : %d %d \n" , p1->x, p1->y); } int main() { vehicle mycar; mycar.brand = "Ford" ; mycar.model = 2007; struct temp *p1 = malloc ( sizeof ( struct temp)); p1->x = 10; p1->y = 10; struct temp p2; p2.x = 20; p2.y = 20; show_point(10, 10); show_point_temp(*p1); show_point_temp(p2); show_point_pointer_temp(p1); show_point_pointer_temp(&p2); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> typedef struct { char *name; int age; }person; int main() { person *myperson = malloc ( sizeof (person)); myperson->name = "jae yeon" ; myperson->age = 24; printf ( "myperson -> name : %s \n" , myperson->name); printf ( "myperson -> age : %d\n" , myperson->age); //할당된 메모리 해제 free (myperson); //해제했기 때문에 아래의 printf는 오류 printf ( "myperson -> name : %s \n" , myperson->name); printf ( "myperson -> age : %d \n" , myperson->age); return 0; } |
'STUDYING > C' 카테고리의 다른 글
[C] 개념 다지기 - Union (0) | 2017.10.01 |
---|---|
[C] 개념 다지기 - linked list (0) | 2017.10.01 |
[C] 기초 개념 다지기 - array (0) | 2017.10.01 |
[C] 개념 다지기 - pointer (0) | 2017.10.01 |
[C] 개념 다지기 - static, extern (0) | 2017.10.01 |