Microsoft PowerPoint - 09-C++-7-Template.pptx
|
|
- 정태 설
- 7 years ago
- Views:
Transcription
1 예제로배우는 C++ 객체지향프로그래밍 1 템플릿 (template) 이란? 한번의정의로모든자료형에대한처리를하도록고안 처리내용은같으나자료형이다를경우각자료형에대한함수를별도작성해야함 이때템플릿으로함수나클래스를통합정의 각자료형을일반화하여하나의모델로모든자료형을처리 예제로배우는 C++ 객체지향프로그래밍 2
2 템플릿함수 예제로배우는 C++ 객체지향프로그래밍 3 템플릿함수 템플릿함수 (template function) 한번의함수정의로서로다른자료형에대해적용하는함수 템플릿함수가적용되어야하는예 int abs(int n) // 정수형인수의 abs() 함수 return n < 0? -n : n; double abs(double n) // double 형인수의 abs() 함수 return n < 0? -n : n; 함수의매개변수와반환형의자료형만이다르고함수내부의프로그램코드는모두같음 템플릿함수를사용하여함수정의는한번만하고필요시자료형에따라각각적용가능 예제로배우는 C++ 객체지향프로그래밍 4
3 템플릿함수정의 템플릿함수는 template 키워드와 typename( 또는 class) 으로템플릿자료형매개변수들를선언 typename 으로선언된템플릿자료형은템플릿함수의형식매개변수나반환형을위한자료형으로사용 template <typename 식별자 [,typename 식별자...]> 함수선언 ; 또는 template <class 식별자 [class [,class 식별자...]> 함수선언 ; 함수호출시에사용되는실매개변수, 반환형의자료형을컴파일러가템플릿함수의자료형인수에대입하여특정함수를생성하고호출 예제로배우는 C++ 객체지향프로그래밍 5 템플릿함수사용예 T abs(t n) // T 형가인수, 반환형을갖는틀함수 abs() 정의 return n < 0? n : n; int i = abs(123); double d = abs( ); // int abs(int n) 을생성하고호출 // double abs(double n) 을생성하고호출 => 함수호출시에사용된실인수, 반환형의자료형에따라두개의 abs() 함수를생성하고호출 int abs(int n) // int i = abs(123); 호출시생성 return n < 0? n : n; double abs(double n) // double d = abs( ); 호출시생성 return n < 0? n : n; 예제로배우는 C++ 객체지향프로그래밍 6
4 예제 7.1: 템플릿함수사용예 1 #include <iostream> template <typename Type> Type minimum(type i a, Type b) // 템플릿함수 minimum( ) 정의 return a < b? a : b; // int minimum(int,int) int) 템플릿함수생성, 호출 cout << minimum(88,24) << endl; // double minimum(double,double) 템플릿함수생성및호출 cout << minimum( ) minimum(1.234,7.56) << endl; 예제로배우는 C++ 객체지향프로그래밍 7 예제 7.2: 템플릿함수사용예 2 #include <iostream> template <typename T1, typename T2> void outdata(t1 a, T2 b) cout << a << ',' << b << endl; // void outdata(int, int) 템플릿함수생성, 호출 outdata(11,22); // void outdata(double, char) 템플릿함수생성, 호출 outdata(3.14, 'c'); c); 11, ,c 템플릿함수의매개변수가여러개이고유형도다른예이다. 예제로배우는 C++ 객체지향프로그래밍 8
5 템플릿함수의특수화 템플릿함수를사용하는자료형중특정자료형에대해별도취급 템플릿함수정의다음에 template<> 라고쓰고특정자료형에대하여템플릿함수와같은명칭의함수를별도정의 예제로배우는 C++ 객체지향프로그래밍 9 #include <iostream> template <typename Type> Type minimum(type a, Type b) // 템플릿함수 minimum( ) 정의 return a < b? a : b; template< > double minimum(double a,double b) // 템플릿함수의특수화 return a > b? a : b; // 큰값을반환 // int minimum(int,int) 템플릿함수생성, 호출 int n = minimum(88,24); i cout << "n = " << n << endl; // 특수화템플릿함수 //double minimum(double,double) double) 생성및호출 double d = minimum(3.65,7.56); cout << "d = " << d << endl; 예제로배우는 C++ 객체지향프로그래밍 10 예제 7.3: 템플릿함수의특수화 n = 24 d =
6 템플릿함수오버로딩 템플릿함수간의오버로딩 일반함수의오버로딩과마찬가지로매개변수의자료형, 매개변수의갯수등으로구분 템플릿함수와일반함수간오버로딩도가능 예제로배우는 C++ 객체지향프로그래밍 11 // sum( ) 템플릿함수 1 정의 T sum(t a, T b) returna+b; // sum( ) 템플릿함수 2 정의 T sum(t *array,int size) T s = 0; for (int i=0; i < size; i++) s += array[i]; return s; int a[10]; for (int i=0; i < 10; ++i) a[i] = i*i; double x=2.1, y = 12.5; cout << "sum 1 : " << sum(x,y) << endl; // 템플릿함수 1 생성, 호출 cout << "sum 2 : " << sum(a,10) << endl; // 템플릿함수 2 생성, 호출 예제로배우는 C++ 객체지향프로그래밍 12 예제 7.4: 템플릿함수의오버로딩예 sum 1: sum 2 : 285
7 템플릿클래스 예제로배우는 C++ 객체지향프로그래밍 13 템플릿클래스 템플릿함수와유사하게클래스를일괄적으로정의 클래스의멤버변수나멤버함수의자료형이다른클래스들을하나의템플릿으로구성 class Counter int value; Counter(int n) value = n; Counter() value=0; int val() return value; void operator ++() ++value; void operator --() --value; ; class Counter double value; Counter(double n) value = n; Counter() value=0; double val() return value; void operator ++() ++value; void operator --() --value; ; 예제로배우는 C++ 객체지향프로그래밍 14
8 템플릿클래스정의및생성 template <typename 식별자 [,typename 식별자...]> 클래스선언 ; 또는 template <class 식별자 [,class 식별자...]> 클래스선언 ; 템플릿 _ 클래스명 < 자료형 [, 자료형, ]> 객체 _ 식별자 ; class Counter T value; Counter(T n) value = n; Counter() value = 0; T val() return value; void operator ++() ++value; void operator --() --value; ; Counter <int> oi; Counter <double> od; 예제로배우는 C++ 객체지향프로그래밍 15 #include <iostream> class Counter // 템플릿클래스정의 T value; Counter( ) value = 0; Counter(T n) value = n; T val( ) return value; void operator ++( ) ++value; void operator --( ) --value; ; Counter <int> icnt; // int형 Counter 클래스생성 Counter <double> dcnt(3.14); // double 형 Counter 클래스생성 Counter <char> ccnt('c'); // char형 Counter 클래스생성 예제로배우는 C++ 객체지향프로그래밍 16 예제 7.5: 템플릿클래스사용예 1 ++icnt; --dcnt; t;++ ++ccnt; cout << "++icnt : " << icnt.val( ) << endl; cout << "--dcnt : " << dcnt.val( ) << endl; cout << "++ccnt : " << ccnt.val( ) << endl; ++icnt : 1 --dcnt : ccnt : D
9 #include <iostream> template <typename S,typename L> class Size int s; int l; Size( ) s = sizeof(s); l = sizeof(l); void print( ) cout << s << ',' << l << endl; ; 예제 7.6: 템플릿클래스사용예 2 char, long int: 1, 4 float, double : 4, 8 Size <char,long int> a; Size <float,double> b; cout << "char,long int: "; a.print( ); cout << "float,double : "; b.print( ); 예제로배우는 C++ 객체지향프로그래밍 17 순천향대학교 #include 컴퓨터학부 <iostream> class Array T *p; // 배열의시작주소 int size; // 배열의크기 Array(int num); // 생성자 T &operator [ ](int i); // [ ] 연산자중복 ; Array<T>::Array(int num) // 템플릿클래스생성자외부정의 p = new T[num]; if (!p) // 동적메모리할당에러 cout << "!! Allocation error n"; exit(1); size = num; T &Array<T>::operator [ ](int i) // 템플릿클래스멤버함수외부정의 if (i <0 i >= size) cout << " n!! Array bounds error n"; exit(1); 예제로배우는 C++ 객체지향프로그래밍 18 예제 7.7: 템플릿클래스사용예 3(1) return p[i]; // p[i] 의참조자반환 Array <int> n(10); // int형 Array 클래스생성 Array <double> d(10); // double형 Array 클래스생성 for (int i = 0; i < 10; i++) n[i] = 2*i; d[i] = 0.2*i; for (int j = 0; j<11; i++) cout << n[j] << ':'; cout << d[j]<< ' '; cout << endl;
10 예제 7.7: 템플릿클래스사용예 3(2) 0:0 2:0.2 4:0.4 6:0.6 8:0.8 10:1 12:1.2 14:1.4 16:1.6 18:1.8!! Array bounds error 예제로배우는 C++ 객체지향프로그래밍 19 템플릿클래스의특수화 템플릿클래스에서특정자료형을별도취급 템플릿함수와마찬가지로특수화함 template <> 클래스선언 ;
11 순천향대학교 #include 컴퓨터학부 <iostream> class mycontainer T element; mycontainer (T arg) element=arg; T increase () return ++element; ; // 템플릿클래스의특수화 template < > class mycontainer <char> char element; mycontainer (char arg) element=arg; char uppercase ( ) if ((element>='a') && (element<='z')) element+='a'-'a'; return element; ; 예제로배우는 C++ 객체지향프로그래밍 21 예제 7.8: 템플릿클래스특수화의예 int main (void) mycontainer<int> myint (7); mycontainer<char> mychar ('j'); cout << myint.increase( ) << endl; cout << mychar.uppercase( ) << endl; 8 J 디폴트템플릿매개변수 템플릿매개변수에디폴트값을정의 템플릿클래스의객체선언시템플릿에전달되는자료형을생략할경우디폴트매개변수로선언된자료형의값을적용 예제로배우는 C++ 객체지향프로그래밍 22
12 #include <iostream> 예제 7.9: 디폴트템플릿매개변수의예 template <typename T = int, typename U = double> class Var_Type T x; U y; Var_Type( ) : x(11), y(22) //!! 수정 Var_Type(T a, U b) x = a, y = b; void Show_Type( ) cout << " x=" << x << endl; cout << " y = " << y << endl; ; 예제로배우는 C++ 객체지향프로그래밍 23 int main (void) x = 10 y= x = k y = 1.2 x = 11 y = 22 Var_Type< > type1(10, 3.14); Var_Type<char> type2('k', 1.2); Var_Type<> type3; type1.show_type( ); type2.show_type( ); type3.show_type(); //!! 수정 템플릿클래스의오버로딩 템플릿클래스내에멤버함수정의시특정자료형에대해적용할수없을경우 별도의멤버함수정의필요 특정자료형에대해멤버함수오버로딩
13 #include <iostream> class Cmp T a; T b; Cmp(T x, Ty)a=x;b=y; = y; T max( ) return a > b? a : b; T min( ) return a < b? a : b; // char * 형 max( ),min( ) 멤버함수오버로딩 char *max(char *s1, char *s2) return strcmp(s1,s2) > 0? s1 : s2; char *min(char *s1, char *s2); ; 예제 7.10: 템플릿클래스멤버함수오버로딩예 Cmp <int> a(24,7); Cmp <char *> s("hello","world"); cout << a.min( ) << endl; cout << s.max("hello","world") " " ld") << endl; // char * 형 min( ) 멤버함수클래스외부정의 char *Cmp<char *>::min(char *s1, char *s2) return strcmp(s1,s2) < 0? s1 : s2; 예제로배우는 C++ 객체지향프로그래밍 25 7 world 템플릿클래스의상속 틀클래스도일반클래스 class Base 와같이상속 일반클래스의템플릿클래스상속 템플릿클래스의템플릿클래스상속 ; class Derive : public Base<int> class Base ; template <typename U> class Derive : public Base<U> 순천향대학교정보기술공학부 26
14 #include <iostream> 예제 7.11: 템플릿클래스의상속예 1 // 베이스템플릿클래스 class Base T x; Base(T m) x = m; void showx( ) cout << "x = " << x << ' n'; ; class Derive : public Base<int> // 파생클래스 int y; // 생성자, 템플릿클래스생성자호출 Derive(int m,int n) : Base<int>(m) y = n; void showy( ) cout << "y = " << y << ' n'; 예제로 ; 배우는 C++ 객체지향프로그래밍 27 Derive d(10,20); dshowx(); d.showx( d.showy( ); x = 10 y = 20 순천향대학교 #include 컴퓨터학부 <iostream> class Area // 베이스템플릿클래스 T side1, side2; Area(T s1, T s2) // 생성자 side1 = s1; side2 = s2; void getside(t &s1, T &s2) s1 = side1; s2 = side2; ; template <typename U> class Rectangle : public Area<U> // 파생템플릿클래스 Rectangle(U s1, U s2) : Area<U>(s1,s2) s2) // 생성자 /* no operation */ U getarea(void) U s1, s2; getside(s1,s2); return s1 * s2; 예제로배우는 C++ 객체지향프로그래밍 28 ; 예제 7.12: 템플릿클래스의상속예 2 Rectangle <int> ir(3,14); Rectangle <double> dr(2.5, 7.3); cout << "int area : " << ir.getarea( ()<< endl; cout << "double area : " << dr.getarea( ) << endl; int area : 42 double area : 18.25
15 응용예 예제로배우는 C++ 객체지향프로그래밍 29 집합프로그램버전 4(1) 집합프로그램버전 4 버전 3의 List와 Set 클래스를템플릿클래스로수정하여정수, 실수, 문자들의집합정의가가능하도록템플릿적용 // 템플릿구조체 Node 정의 struct Node // 노드의정의 // List 템플릿클래스정의 class List // 베이스클래스 // Set 템플릿클래스정의 class Set : public List<T> // 파생클래스 예제로배우는 C++ 객체지향프로그래밍 30
16 집합프로그램버전 4(2) 교재내용중 Union() 함수관련다음코드오류수정 36. void Union(Set *s1, Set *s2);// 두집합의합집합연산함수 171. void Set<T>::Union(Set <T> *s1, Set <T> *s2) 189. Set<T>::insert(n->data); 예제로배우는 C++ 객체지향프로그래밍 31 순천향대학교 1. // 집합프로그램컴퓨터학부버전이4 상정 #include <iostream> #define NULL // 템플릿구조체 Node 정의 9. struct Node // 노드의정의 10. T data; // 자료 11. Node *next; // 다음노드의위치포인터 12. ; // List 템플릿클래스정의 15. class List // 베이스클래스 16. protected: // 보호부분지정 17. Node <T> *header; List( ) header = NULL; // 생성자 20. ~List( ); // 소멸자 21. virtual bool insert(t val); // 자료삽입함수, 가상함수 22. virtual bool member(t val); // 멤버조사함수, 가상함수 23. bool del(t val); // 자료삭제함수 24. virtual void print( ); // 자료출력함수, 가상함수 25. ; class Set : public List<T> // 파생클래스 29. int num; // 집합의원소수 Set( ) num = 0; // 생성자 32. bool member(t e); // 원소 e의멤버조사함수 33. bool insert(t e); // 원소 e의삽입함수 34. void remove(t e); // 원소 e의삭제함수 35. 예제로bool 배우는equal(Set C++ 객체지향 *s); // 프로그래밍두집합의등가여부조사함수 void Union(Set *s1, Set *s2); // 두집합의합집합연산함수 37. void print( ); // 집합의원소출력함수 38. ; List<T>::~List( ) // 베이스클래스소멸자 Node <T> *n n, *tmp; n = header; 46. if (n == NULL) // 빈리스트 47. return; while (n!= NULL) // 리스트의끝이아니면반복 50. tmp = n; // 현재노드지정 51. n = n->next; // 다음노드지정 52. delete tmp; // 현재노드메모리해제 bool List<T>::insert(T insert(t val) // 베이스클래스 insert( ) 함수 Node <T> *tmp; if ((tmp=new Node<T>) == NULL) // 삽입될자료의새노드지정 62. return false; // 동적메모리할당실패시 false 반환 63. tmp->data = val; 64. tmp->next = header; // 삽입전첫노드를새노드의다음으로지정 65. header = tmp; // 새노드를첫노드로지정 66. return true;
17 순천향대학교 69. template 컴퓨터학부 <typename이t> 상정 70. bool List<T>::member(T val) // 베이스클래스 member( ) 함수 Node <T> *n; n = header; 75. while (n!= NULL) // 리스트의끝이아니면반복 76. if (n->data == val) //val 이멤버이면 77. return true; 78. n=n->next; return false; bool List<T>::del(T val) Node <T> *before; // 삭제할노드의앞노드포인터 87. Node <T> *current; // 삭제할노드 if (header!= NULL) // 빈리스트가아니면 90. before = current = header; 91. while (current->data!= val) // 삭제노드를발견시 까지반복 92. before = current; 93. current = current->next; 94. if (current == NULL) 95. cout << val << " is not found n"; 96. return false; if (before == current) // 삭제할노드가첫노드이 면 100. header = header->next; // 삭제다음노드를첫 노드로예제로지정배우는 C++ 객체지향프로그래밍 delete current; // 삭제노드의메모리해제 else 104. before->next = current->next; 105. // 앞노드가삭제노드다음을가리키도록지정 106. delete current; // 삭제노드의메모리해제 return true; else // 빈리스트이면에러메시지출력 111. cout << "Null list(delete) n"; 112. return false; void List<T>::print( ) Node <T> *n; n = header; 122. if (n == NULL) // 빈리스트이면에러메시지출력 123. cout << "Null list(print) n"; 124. return; while (n!= NULL) // 리스트의끝이아니면반복 127. cout << n->data << " "; // 자료출력 128. n = n->next; // 다음노드로이동 bool Set<T>::member(T e) // 파생클래스 member( ) 함수 return List<T>::member(e); // 베이스제 7클래스장템플릿 memebr( ) 함수호출 순천향대학교 136. 컴퓨터학부 bool Set<T>::insert(T e) // 파생클래스 insert( ) 함수 if (!List<T>::member(e) && List<T>::insert(e)) 142. // 베이스클래스함수호출 143. // e가연결리스트멤버가아니면서자료가삽입되 면 num; 145. return true; return false; void Set<T>::remove(T e) if (List<T>::del(e)) // 베이스클래스의 del( ) 함수호 출 num; // 두집합의등가여부조사함수 bool Set<T>::equal(Set <T> *s) if (num!= s->num) // 원소의수가같지않으면 162. return false; // false 반환 163. for (Node <T> *n = header; n!= NULL; n = n->next) 164. if (!s->member(n->data)) // 원소중하나라도집 합 s의멤버가아니면 165. return false; // false 반환 166. return true; // 위의경우가아니면 true 반환 예제로배우는 C++ 객체지향프로그래밍 // 두집합의합집합연산함수 void Set<T>::Union(Set <T> *s1, Set <T> *s2) Node <T> *n, *tmp; 174. n = header; // 현재객체의노드들을제거 177. while (n!= NULL) // 리스트의끝이아니면반복 178. tmp = n; // 현재노드지정 179. n = n->next; // 다음노드지정 180. delete tmp; // 현재노드해제 for (n = s1->header; n!= NULL; n = n->next) 184. List<T>::insert(n->data); // 현재객체에 s1 원소복사 185. num = s1->num; for (n = s2->header; n!= NULL; n = n->next) 188. // s2 원소삽입 189. Set<T>::insert(n->data); // 집합의원소출력함수 void Set<T>::print( ) cout << ''; 199. List<T>::print( ); // 베이스클래스 print( ) 함수호출 200. cout << " n";
18 집합프로그램버전 Set <char> cs; 206. cs.insert('a'); cs.insert('d'); cs.insert('x'); cs.insert('c'); 207. cs.remove('x'); 208. cout << "1. cs = "; cs.print( ); Set <int> s1,s2,s3; 211. s1.insert(88); s1.insert(33); s1.insert(99); s1.insert(77); 212. s2.insert(10); s2.insert(20); s2.insert(30); 213. s3.union(&s1, &s2); 214. cout << "2. s1 = "; s1.print( ); 215. cout << "3. s2 = "; s2.print( ); 216. cout << "4. s3 = s1 U s2 = "; s3.print( ); Set <double> ds; 219. ds.insert(1.2); ds.insert(3.14); ds.insert(7.777); 220. cout << "5. ds = "; ds.print( ); 221. if (ds.member(3.14)) 222. cout << " is in set ds n"; cs = c d a 2. s1 = s2= s3 = s1 U s2 = ds = is in set ds 예제로배우는 C++ 객체지향프로그래밍 35 과제 1 - 필수과제 연습문제 7.1 두수를교환하는 swap(a, b) 템플릿함수를작성하여라. 단, a, b는문자, 정수, 실수형의자료로표현될수있다. 7.2 연습문제 7.1의 swap(a,b) 템플릿함수에서문자열의자료형도교환할수있도록수정하여라 예제 의프로그램에예제 과같이삼각형의면적을계산하는파생클래스 Triangle을추가하여라. 예제로배우는 C++ 객체지향프로그래밍 36
19 과제 2 - 선택과제 응용예문제 응용예 7.1의집합프로그램버전4에두집합간의교집합을구하는멤버함수 intersect() 와한집합이다른집합의부분집합관계인가를판정하는멤버함수 subset() 을삽입하라. 예제로배우는 C++ 객체지향프로그래밍 37
PowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
Microsoft PowerPoint - additional-11_13l.ppt [호환 모드]
11.string 클래스디자인로딩 표준 string 클래스 사용자정의클래스 Jong Hyuk Park 표준 string 클래스 Jong Hyuk Park string 클래스 C++ 표준라이브러리에서정의된문자열처리클래스 #include #include using std::endl; using std::cout; using std::cin;
Microsoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
쉽게 풀어쓴 C 프로그래밍
제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace
1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할
15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p
Microsoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a
6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;
금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
Microsoft PowerPoint - additional08.ppt [호환 모드]
8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!
설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현
<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>
저 자 약 력이상정순천향대학교컴퓨터학부교수, sjlee@sch.ac.kr 조영일수원대학교컴퓨터학과교수, yicho@suwon.ac.kr 김은성순천향대학교전기전자공학과교수, eskim@sch.ac.kr 박종득공주대학교컴퓨터공학부교수, pjd@kongju.ac.kr C++ 언어는 C 에 C 언어의증가연산자 ++ 를덧붙인 C++ 라는이름이의미하는바와같이 C 언어의문법을대부분그대로사용하면서객체지향프로그래밍기법을추가한
슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
untitled
int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015
Microsoft PowerPoint - Chapter 6.ppt
6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)
4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문
4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class
Slide 1
SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 16. 템플릿 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 함수템플릿 구문, 정의 컴파일합병 클래스템플릿 문법 예 : 배열템플릿클래스 템플릿및상속 예 : 부분적으로채워진배열템플릿클래스
PowerPoint Template
7. 상속 (inheritance) 의이해 상속의기본개념 상속의생성자, 소멸자 protected 멤버 Jong Hyuk Park 상속의기본개념 Jong Hyuk Park 상속의기본개념 상속의예 1 " 철수는아버지로부터좋은목소리와큰키를물려받았다." 상속의예 2 "Student 클래스가 Person 클래스를상속한다." 아버지 Person 철수 Stduent 3
쉽게 풀어쓴 C 프로그래밍
제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using
11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
C++ Programming
C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )
슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
C++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
Lab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
chap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
Microsoft PowerPoint - Chapter 1-rev
1.C 기반의 C++ part 1 스트림입출력 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 스트림입출력 Jong Hyuk Park printf 와 scanf 출력의기본형태 : 과거스타일! iostream.h 헤더파일의포함
[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
PowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,
8 장상속 상속의기본개념상속관련문제제기 base 클래스의접근제어와 protected 멤버상속관계에서의생성자와소멸자함수재정의 (function overriding) 디폴트액세스지정자와구조체 derived 클래스로부터의상속다중상속 virtual base 클래스 derived 클래스의디폴트복사생성자와디폴트대입연산자 private 생성자의사용 C++ 프로그래밍입문
PowerPoint Template
1.C 기반의 C++ 스트림입출력 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 스트림입출력 Jong Hyuk Park printf 와 scanf 출력의기본형태 iostream 헤더파일의포함 HelloWorld2.cpp
<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>
객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보
Microsoft PowerPoint - additional03.ppt [호환 모드]
3. 클래스의기본 객체지향프로그래밍소개 구조체와클래스 클래스의정의 Jong Hyuk Park 객체지향프로그래밍소개 Jong Hyuk Park 구조적프로그래밍개념 기존 C와같은구조적프로그래밍언어는동작되는자료와처리동작자체를서로별도로구분 처리동작과자료사이의관계가서로밀접한연관성을갖지못함 프로그램이커지거나복잡해지면프로그램이혼란스럽게되어에러를찾는디버깅및프로그램의유지보수가어려워짐
Microsoft PowerPoint - additional07.ppt [호환 모드]
보충자료 7. 상속 (inheritance) 의이해 상속의기본개념 상속의생성자, 소멸자 protected 멤버 Jong Hyuk Park 상속의기본개념 Jong Hyuk Park 상속의기본개념 상속의예 1 " 철수는아버지로부터좋은목소리와큰키를물려 받았다." 상속의예 2 "Student 클래스가 Person 클래스를상속한다." 아버지 Person 철수 Stduent
1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1
5 장클래스의활용 클래스와배열객체포인터 this 포인터멤버함수오버로딩디폴트매개변수의사용 friend ( 전역함수, 클래스, 멤버함수 ) 내포클래스지역클래스 static 멤버 const 멤버와 const 객체 explicit 생성자 C++ 프로그래밍입문 1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int
C++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
C++ Programming
C++ Programming 클래스와데이터추상화 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 객체지향프로그래밍 클래스와객체 2 객체지향프로그래밍 객체지향언어 (Object-Oriented Language) 프로그램을명령어의목록으로보는시각에서벗어나여러개의 독립된단위, 즉 객체 (Object) 들의모임으로파악
Microsoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
Microsoft PowerPoint - Chap12-OOP.ppt
객체지향프로그래밍 (Object Oriented Programming) 12 장강사 강대기 차례 (Agenda) 멤버에대한동적메모리할당 암시적 / 명시적복사생성자 암시적 / 명시적오버로딩대입연산자 생성자에 new 사용하기 static 클래스멤버 객체에위치지정 new 사용하기 객체를지시하는포인터 StringBad 클래스 멤버에포인터사용 str static 멤버
PowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
Lab 4. 실습문제 (Circular singly linked list)_해답.hwp
Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular
PowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
Microsoft PowerPoint - additional06.ppt [호환 모드]
보조자료 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park 복습 : Const 키워드왜사용? C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; //
설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt
포인터 1 포인터란? 포인터 메모리의주소를가지고있는변수 메모리주소 100번지 101번지 102번지 103번지 int theage (4 byte) 변수의크기에따라 주로 byte 단위 주소연산자 : & 변수의주소를반환 메모리 2 #include list 8.1 int main() using namespace std; unsigned short
쉽게 풀어쓴 C 프로그래밍
제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요
(Microsoft Word - \301\337\260\243\260\355\273\347.docx)
내장형시스템공학 (NH466) 중간고사 학번 : 이름 : 문제 배점 점수 1 20 2 20 3 20 4 20 5 10 6 10 7 15 8 20 9 15 합계 150 1. (20 점 ) 다음용어에대해서설명하시오. (1) 정보은닉 (Information Hiding) (2) 캡슐화 (Encapsulation) (3) 오버로딩 (Overloading) (4) 생성자
Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
1. 표준입출력 C++ : C의모든라이브러리를포함 printf, scanf 함수사용가능예 : int, double, 문자열값을입력받고출력하기 #include <cstdio> int ivar; double dvar; char str[20]; printf("int, dou
2 장더나은 C 로서의 C++ (1) 표준입출력네임스페이스 ( 고전 C++ 와표준 C++) 함수오버로딩디폴트매개변수 new와 delete bool 자료형 C++ is not C C++ 프로그래밍입문 1. 표준입출력 C++ : C의모든라이브러리를포함 printf, scanf 함수사용가능예 : int, double, 문자열값을입력받고출력하기 #include
Slide 1
SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 14. 상속 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 상속의기본 파생클래스와생성자 protected: 제한자 멤버함수의재정의 상속되지않는함수들 상속을이용한프로그래밍
Microsoft PowerPoint - CSharp-10-예외처리
10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.
(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])
클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include
PowerPoint Presentation
public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +
Microsoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문
1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int
설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 4 강. 함수와라이브러리함수목차 함수오버로딩 디폴트매개변수 라이브러리함수 clock 함수 난수발생 비버퍼형문자입력 커서이동 프로그래밍문제 1 /21 4 강. 함수와라이브러리함수함수오버로딩 2 /21 함수오버로딩 동일한이름의함수를여러개만들수있음 함수프로파일이달라야함 함수프로파일
Chapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
A Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
06장.리스트
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 리스트 1/28 리스트란? 리스트 (list), 선형리스트 (linear list) 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : ( ㄱ, ㄴ,, ㅎ ) 카드 :
02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
KNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
Microsoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
Microsoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
1. 기본형의형변환복습 C/C++ 형변환의종류 자동형변환 ( 묵시적형변환 ) 강제형변환 ( 명시적형변환 ) 기본형의자동형변환의예 1. 배열 to 포인터변환 배열명은해당배열의첫번째원소의 주소로변환됨 int ary[10]; int *pary = ary; 2. 함수 to 포
9 장상속과다형성 기본형의형변환복습서로다른클래스객체들사이의대입상속관계인객체와포인터의관계가상함수가상함수의동작원리추상클래스와순수가상함수 virtual 소멸자클래스멤버변수로서의클래스객체다중파일프로그래밍 C++ 프로그래밍입문 1. 기본형의형변환복습 C/C++ 형변환의종류 자동형변환 ( 묵시적형변환 ) 강제형변환 ( 명시적형변환 ) 기본형의자동형변환의예 1. 배열 to
Microsoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
Microsoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
Microsoft PowerPoint - chap-11.pptx
쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.
C프로-3장c03逞풚
C h a p t e r 03 C++ 3 1 9 4 3 break continue 2 110 if if else if else switch 1 if if if 3 1 1 if 2 2 3 if if 1 2 111 01 #include 02 using namespace std; 03 void main( ) 04 { 05 int x; 06 07
Microsoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터
- Part2-3 3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터 3.1 포인터란 ü ü ü. ü. ü. ü ( ) ? 3.1 ü. ü C ( ).? ü ü PART2-4 ü ( ) PART3-4 3.2 포인터변수의선언과사용 3.2 포인터 변수의 선언과 사용 (1/8) 포인터 변수의
chap10.PDF
10 C++ Hello!! C C C++ C++ C++ 2 C++ 1980 Bell Bjarne Stroustrup C++ C C++ C, C++ C C 3 C C++ (prototype) (type checking) C C++ : C++ 4 C C++ (prototype) (type checking) [ 10-1] #include extern
Microsoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 11 장포인터 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습합니다.
설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]
A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
윤성우의 열혈 TCP/IP 소켓 프로그래밍
C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct
쉽게 풀어쓴 C 프로그래밍
제 13 장파일처리 1. 스트림의개념을이해한다. 2. 객체지향적인방법을사용하여파일입출력을할수있다. 3. 텍스트파일과이진파일의차이점을이해한다. 4. 순차파일과임의접근파일의차이점을이해한다. 이번장에서만들어볼프로그램 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 입출력관련클래스들 파일쓰기
Lab 5. 실습문제 (Double linked list)-1_해답.hwp
Lab 5. Doubly-linked list 의구현 실험실습일시 : 2009. 4. 13. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 19. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Doubly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Doubly-linked list의각함수를구현한다.
슬라이드 1
6-1 리스트 (list) 란순서를가진항목들을표현하는자료구조 리스트를구현하는두가지방법 배열 (array) 을이용하는방법 구현간단 삽입, 삭제시오버헤드 항목의개수제한 연결리스트 (linked list) 를이용하는방법 구현복잡 삽입, 삭제가효율적 크기가제한되지않음 6-2 객체 : n 개의 element 형으로구성된순서있는모임 연산 : add_last(list,
JAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
Microsoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
Visual C++ & OOP Fundamentals ( 2005/1/31~2005/2/4)
제 2 장. C 보다나은 C++ I 학습목표 C++ 의개선된데이터형기능인엄격한형검사, bool 형, 레퍼런스형에대해알아본다. C++ 의개선된함수기능인인라인함수, 디폴트인자, 함수오버로딩, 함수템플릿에대해알아본다. 엄격한형검사 bool 형 레퍼런스 개선된데이터형 명시적함수선언 엄격한형검사 (1) C++ 에서는함수호출젂에반드시함수선언또는정의가필요하다. void
Microsoft PowerPoint - 05장(함수) [호환 모드]
이장에서다룰내용 1 함수의기본 2 함수의입출력방법 함수 함수는입력을넣으면출력이나오는마술상자다. 3 4 재귀함수 Inline 함수 01_ 함수의기본 01_ 함수의기본 함수란 함수를사용할때의장점 반복적으로실행해야할내용을함수로만들어필요할때마다호출해사용할수있다. 프로그램이모듈화 ( 블록화 ) 되므로읽기쉽고, 디버그와편집이쉽다. 프로그램의기능과구조을한눈에알아보기쉽다.
Chapter 4. LISTS
6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
17장 클래스와 메소드
17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는
K&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor
19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색
PowerPoint 프레젠테이션
Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2
설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 15 강. 표준입출력목차 C++ 입출력클래스 입출력형식설정방법 setf, unsetf 멤버함수에의한입출력형식설정 setf 이외의멤버함에의한입출력형식설정 입출력조작자에의한입출력형식설정 문자및문자열입출력멤버함수 문자단위입출력 줄단위입력 입출력스트림상태 string 클래스 complex
adfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
Chapter 6 Objects and Classes
11 장상속과다형성 1 강의목표 상속 (inheritance) 을이용하여기본클래스 (base class) 로부터파생클래스 (derived class) 생성 (11.2) 파생클래스유형의객체를기본클래스유형의매개변수 (parameter) 로전달함으로써일반화프로그래밍 (generic programming) 작업 (11.3) 생성자와소멸자의연쇄적처리 (chaining)
C 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2
객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가
<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>
제14장 동적 메모리 할당 Dynamic Allocation void * malloc(sizeof(char)*256) void * calloc(sizeof(char), 256) void * realloc(void *, size_t); Self-Referece NODE struct selfref { int n; struct selfref *next; }; Linked
윤성우의 열혈 TCP/IP 소켓 프로그래밍
Chapter 08. 상속과다형성 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2013-2 nd 프로그래밍입문 (2) Chapter 08-1. 객체포인터의참조관계 3 상속된객체와포인터관계 객체포인터 객체의주소값을저장할수있는포인터 AAA 클래스의포인터는 AAA 객체의주소뿐만아니라 AAA