Microsoft PowerPoint - Chapter 10.ppt

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Microsoft PowerPoint - Chapter 10.ppt"

Transcription

1 10. 연산자오버로딩 연산자오버로딩소개 이항연산자오버로딩 단항연산자의오버로딩 cout, cin, endl 구현 배열인덱스연산자오버로딩 대입연산자오버로딩 Jong Hyuk Park

2 연산자오버로딩소개 Jong Hyuk Park

3 연산자오버로딩 (operator overloading) C++ 에서는기존의 C 언어에서제공하고있는연산자에대하여그의미를다시부여하는것을 " 연산자오버로딩 " 또는 " 연산자중복 ( 재정의 )" 라함 연산자오버로딩은기본적으로함수의오버로딩과같이연산자도하나의함수라는개념을사용하여중복정의 중복되는연산자함수는클래스의멤버함수나프렌드함수로정의 함수이름대신에 operator 키워드를사용하고다음에연산자를기술 반환형 operator 연산자 ( 가인수리스트 ); 두가지형태로표현 멤버함수에의한오버로딩 전역함수에의한오버로딩, friend 함수선언 3

4 연산자오버로딩정의예 class Complex // + 연산자오버로딩 Complex operator +(Complex x); // 멤버함수 // friend Complex operator+(complex x,complex y); // 전역함수 ; Complex a, b, c; c = a + b; // 중복된연산자를사용한복소수덧셈연산표현 복소수형클래스 + 연산자오버로딩정의예 operator + 는함수와같이간주 c = a + b는 c = a.operator + (b); 로기술할수도있음 객체 a 의멤버함수 operator + 를호출하고인수 b 를전달 4

5 이항연산자오버로딩 Jong Hyuk Park

6 6 멤버함수연산자오버로딩예 #include <iostream> using std::endl; using std::cout; class Point int x, y; Point(int _x=0, int _y=0) x = _x; y = _y; void ShowPosition(); Point operator+(const Point& p); ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point Point::operator+(const Point& p) Point temp; temp.x = x + p.x; temp.y = y + p.y; return temp; int main(void) Point p1(1, 2); Point p2(2, 1); Point p3=p1+p2; // p3 = p1.operator+(p2); p3.showposition(); #include <iostream> using std::endl; using std::cout; class Point int x, y; Point(int _x=0, int _y=0) : x(_x), y(_y) void ShowPosition(); Point operator+(const Point& p); ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point Point::operator+(const Point& p) Point temp(x+p.x, y+p.y); return temp; int main(void) Point p1(1, 2); Point p2(2, 1); Point p3=p1+p2; // p3 = p1.operator+(p2); p3.showposition();

7 전역함수연산자오버로딩예 #include <iostream> using std::endl; using std::cout; class Point int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) void ShowPosition(); friend Point operator+(const Point& p1, const Point& p2); ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point operator+(const Point& p1, const Point& p2) Point temp(p1.x+p2.x, p1.y+p2.y); return temp; int main(void) Point p1(1, 2); Point p2(2, 1); Point p3=p1+p2; // p3 = operator+(p1,p2) p3.showposition(); 7

8 복소수연산예 (1) #include <iostream> using std::endl; using std::cout; class Complex double re, im; Complex(double r, double i) re = r; im = i; Complex() re = 0; im = 0; Complex operator +(const Complex& c); // + 연산자중복 Complex operator -(const Complex& c); // - 연산자중복 void show() cout << re << " + i" << im << '\n'; ; Complex Complex::operator +(const Complex& c) Complex tmp; tmp.re = re + c.re; tmp.im = im + c.im; return tmp; Complex Complex::operator -(const Complex& c) Complex tmp; tmp.re = re - c.re; tmp.im = im - c.im; return tmp; int main() Complex a(1.2,10.6), b(2.3, 5), c(2.0,4.4); Complex sum, dif; sum = a + b; // 연산자함수 + 호출 cout << "a + b = "; sum.show(); dif = a - b; // 연산자함수 - 호출 cout << "a - b = "; dif.show(); sum = a + b + c; // 연산자함수 + 호출 cout << "a + b + c = "; sum.show(); 8

9 복소수연산예 (2) a + b = i15.6 a - b = i5.6 a + b + c = i20 복소수덧셈, 뺄셈을위해연산자 +, -를중복정의하였다. 각연산자함수가 Complex 형의객체를반환하므로 a + b + c 와같이연속적인연산이가능하다. 각연산자는다음과같이연산자함수를호출한다. a + b => a.operator +(b) a - b => a.operator -(b) a + b + c => a.operator +(b).operator +(c) 9

10 #include <iostream> using std::endl; using std::cout; 연산자함수의오버로딩예 class Point int x, y; Point(int _x=0, int _y=0) : x(_x), y(_y) void ShowPosition(); Point operator+(const Point& p); // + 연산자 1 Point operator+(const int v); // + 연산자 2 ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; int main(void) Point p1(1, 2); Point p2(2, 1); Point p3=p1+p2; // p3 = p1.operator+(p2); p3.showposition(); Point Point::operator+(const Point& p) Point temp(x+p.x, y+p.y); return temp; Point Point::operator+(const int d) Point temp(x+d, y+d); return temp; 10 Point p4=p1+10; // p4 = p1.operator+(10); // Point p4 = 10 + p1? p4.showposition();

11 교환법칙적용예 #include <iostream> using std::endl; using std::cout; class Point int x, y; Point(int _x=0, int _y=0) : x(_x), y(_y) void ShowPosition(); Point operator+(const Point& p); // + 연산자 1 Point operator+(const int d); // + 연산자 2 friend Point operator+(const int d, const Point& p); // + 연산자 3 ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point operator+(const int d, const Point& p) return p+d; int main(void) Point p1(1, 2); Point p2(2, 1); Point p3=p1+p2; // p3 = p1.operator+(p2); p3.showposition(); 11 Point Point::operator+(const Point& p) Point temp(x+p.x, y+p.y); return temp; Point Point::operator+(const int d) Point temp(x+d, y+d); return temp; Point p4=p1+10; // p4 = p1.operator+(10); p4.showposition(); Point p5=10+p2; // p4 = operator+(10,p2); p5.showposition();

12 교환법칙해결하기 12 /* Associative2.cpp */ #include <iostream> using std::endl; using std::cout; class Point private: int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) void ShowPosition(); Point operator+(int val); //operator+ 라는이름의함수 friend Point operator+(int val, const Point& p); ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point Point::operator+(int val) Point temp(x+val, y+val); return temp; Point operator+(int val, Point& p) return p+val; int main(void) Point p1(1, 2); Point p2=p1+3; p2.showposition(); Point p3=3+p2; p3.showposition();

13 교환법칙해결하기 #include <iostream> using std::endl; using std::cout; class AAA char name[20]; AAA(char* _name) strcpy(name, _name); cout<<name<<" 객체생성 "<<endl; ~AAA() cout<<name<<" 객체소멸 "<<endl; ; int main(void) AAA aaa("aaa Obj"); cout<<" 임시객체생성전 "<<endl; AAA("Temp Obj"); cout<<" 임시객체생성후 "<<endl; aaa object 객체생성 임시객체생성전 Temp object 객체생성 Temp object 객체생성 임시객체생성후 aaa object 객체소멸 13

14 교환법칙해결하기 14 #include <iostream> using std::endl; using std::cout; class Point private: int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) void ShowPosition(); Point operator+(int val); //operator+ 라는이름의함수 friend Point operator+(int val, const Point& p); ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point Point::operator+(int val) //Point temp(x+val, y+val); //return temp; return Point(x+val, y+val); Point operator+(int val, Point& p) return p+val; int main(void) Point p1(1, 2); Point p2=p1+3; p2.showposition(); Point p3=3+p2; p3.showposition();

15 관계연산자예 15 #include <iostream> using std::endl; using std::cout; class Point int x, y; Point(int _x=0, int _y=0) : x(_x), y(_y) void ShowPosition(); Point operator+(const Point& p); // + 연산자 1 Point operator+(const int v); // + 연산자 2 int operator<(const Point& p); // < 연산자 ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point Point::operator+(const Point& p) Point temp(x+p.x, y+p.y); return temp; Point Point::operator+(const int d) Point temp(x+d, y+d); return temp; Point Point::operator<(const Point& p) return ((x < p.x) && (y < p.y)); int main(void) Point pt(1, 2); if (pt < pt+10) // pt.operator<(pt.operator+(10)) cout << "pt < pt+10\n"; else cout << "pt >= pt+10\n";

16 단항연산자의오버로딩 Jong Hyuk Park

17 단항연산자중복 ++, --, ~,! 등과같은단항연산자 (unary operator) 도이항연산자와같이중복정의 멤버함수에의한오버로딩 단항연산자의경우하나의오퍼랜드는연산자함수를정의하는객체가되므로연산자멤버함수의인수가없게됨 전역함수에의한오버로딩 연산자전역함수에하나의오퍼랜드가전달 17

18 단항연산자예 1 #include <iostream> using std::endl; using std::cout; class Point private: int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) void ShowPosition(); Point& operator++(); friend Point& operator--(point& p); ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; Point& Point::operator++() x++; y++; return *this; Point& operator--(point& p) p.x--; p.y--; return p; int main(void) Point p(1, 2); ++p; //p 의 x, y 값을 1 씩증가. // p.operator++() p.showposition(); //2, 3 --p; //p 의 x, y 값을 1 씩감소. // operator--(p) p.showposition(); //1, 2 ++(++p); // (p.operator++()).operator++() p.showposition(); //3, 4 --(--p); // operator--(operator--(p)) p.showposition(); //1, 2

19 단항연산자예 2 #include <iostream> using std::endl; using std::cout; class Point int x, y; Point(int _x=0, int _y=0) : x(_x), y(_y) void ShowPosition(); Point operator-(const Point& p); // 이항연산자 - Point operator-(); // 단항연산자 - ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; int main(void) Point p1(3, 8); Point p2(2, 1); Point p3=p1-p2; // p3 = p1.operator-(p2); p3.showposition(); Point p4=-p1; // p4 = p1.operator-(); p4.showposition(); Point Point::operator-(const Point& p) Point temp(x-p.x, y-p.y); return temp; Point Point::operator-() Point temp(-x, -y); return temp; 19

20 단항연산자의오버로딩 선연산과후연산의구분 ++p p++ p.operator++(); p.operator++(int); --p p.operator--(); p-- p.operator--(int); 20

21 단항연산자의오버로딩 class Point private: int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) void ShowPosition(); Point& operator++(); Point operator++(int); ; void Point::ShowPosition() cout<<x<<" "<<y<<endl; int main(void) Point p1(1, 2); (p1++).showposition(); p1.showposition(); Point p2(1, 2); (++p2).showposition(); Point& Point::operator++() x++; y++; return *this; Point Point::operator++(int) Point temp(x, y); // Point temp(*this); x++; y++; return temp; 21

22 cout, cin, endl 구현 Jong Hyuk Park

23 입출력연산자개요 C++ 의입출력연산자 <<, >> 도연산자오버로딩에의해구현된것 이름영역 std의클래스 ostream, istream 클래스에서정의 미리정의된자료형에대해입출력 입출력연산자 <<, >> 로사용자정의객체에적용하려면아래와같은전역함수 (friend 함수 ) 정의 ostream& operator<<(ostream& os, class ob) return os; istream& operator>>(istream& is, class ob) return is; 23

24 ostream 구현예 1 #include<stdio.h> namespace mystd //mystd 라는이름공간시작. char* endl="\n"; class ostream // 클래스 ostream 정의 void operator<<(char * str) printf("%s", str); void operator<<(int i) printf("%d", i); void operator<<(double i) printf("%e", i); ; ostream cout; //ostream 객체생성 // mystd 이름공간끝. using mystd::cout; using mystd::endl; int main() cout<<"hello World \n"; // cout.operator<<("hello World \n"); cout<<3.14; cout<<endl; cout<<1; cout<<endl; 24

25 ostream 구현예 2 #include<stdio.h> namespace mystd //mystd 라는이름공간시작. char* endl="\n"; class ostream // 클래스 ostream 정의 ostream& operator<<(char * str) printf("%s", str); return *this; ostream& operator<<(int i) printf("%d", i); return *this; ostream& operator<<(double i) printf("%e", i); return *this; ; using mystd::cout; using mystd::endl; int main() cout<<"hello World"<<endl<<3.14<<endl; ostream cout; //ostream 객체생성 // mystd 이름공간끝. 25

26 사용자정의객체출력예 <<, >> 연산자의오버로딩 Point 객체를기반으로하는 <<, >> 입출력연산 cout<<p cout.operator<<(p); // (x) cout<<p operator<<(cout, p); // (o) ostream& operator<<(ostream& os, const Point& p) 26

27 사용자정의객체출력예 #include <iostream> using std::endl; using std::cout; using std::ostream; class Point private: int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) friend ostream& operator<<(ostream& os, const Point& p); ; ostream& operator<<(ostream& os, const Point& p) os<<"["<<p.x<<", "<<p.y<<"]"<<endl; return os; int main(void) Point p(1, 3); cout<<p; // operator<<(cout, p); 27

28 배열인덱스연산자오버로딩 Jong Hyuk Park

29 인덱스연산자 기본자료형데이터저장배열클래스 IdxOverloading1.cpp 객체저장할수있는배열클래스 IdxOverloading2.cpp arr[i] arr.operator[](i); 29

30 배열클래스예 #include <iostream> using std::endl; using std::cout; const int SIZE=3; // 저장소의크기. class Arr private: int arr[size]; int idx; Arr():idx(0) int GetElem(int i); // 요소를참조하는함수. void SetElem(int i, int elem); // 저장된요소를변경하는함수. void AddElem(int elem); // 배열에데이터저장하는함수. void ShowAllData(); ; int Arr::GetElem(int i) return arr[i]; void Arr::SetElem(int i, int elem) if(idx<=i) cout<<" 존재하지않는요소!"<<endl; return; arr[i]=elem; 30 void Arr::AddElem(int elem) if(idx>=size) cout<<" 용량초과!"<<endl; return ; arr[idx++]=elem; void Arr::ShowAllData() for(int i=0; i<idx; i++) cout<<"arr["<<i<<"]="<<arr[i]<<endl; int main(void) Arr arr; arr.addelem(1); arr.addelem(2); arr.addelem(3); arr.showalldata(); // 개별요소접근및변경 arr.setelem(0, 10); arr.setelem(1, 20); arr.setelem(2, 30); cout<<arr.getelem(0)<<endl; cout<<arr.getelem(1)<<endl; cout<<arr.getelem(2)<<endl;

31 배열인덱스연산자오버로딩예 #include <iostream> using std::endl; using std::cout; const int SIZE=3; // 저장소의크기. class Arr private: int arr[size]; int idx; Arr():idx(0) int GetElem(int i); // 요소를참조하는함수. void SetElem(int i, int elem); // 저장된요소를변경하는함수. void AddElem(int elem); // 배열에데이터저장하는함수. void ShowAllData(); int& operator[](int i); // 배열요소에접근 ; int Arr::GetElem(int i) return arr[i]; int& Arr::operator[](int i) return arr[i]; void Arr::SetElem(int i, int elem) if(idx<=i) cout<<" 존재하지않는요소!"<<endl; return; arr[i]=elem; 31 void Arr::AddElem(int elem) if(idx>=size) cout<<" 용량초과!"<<endl; return ; arr[idx++]=elem; void Arr::ShowAllData() for(int i=0; i<idx; i++) cout<<"arr["<<i<<"]="<<arr[i]<<endl; int main(void) Arr arr; arr.addelem(1); arr.addelem(2); arr.addelem(3); arr.showalldata(); // 개별요소접근및변경 arr[0]=10; // arr.operator[](0); arr[1]=20; arr[2]=30; cout<<arr[0]<<endl; cout<<arr[1]<<endl; cout<<arr[2]<<endl;

32 사용자정의객체저장배열예 (1) #include <iostream> using std::endl; using std::cout; using std::ostream; /***************** Point Class **************************/ class Point private: int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) friend ostream& operator<<(ostream& os, const Point& p); ; ostream& operator<<(ostream& os, const Point& p) os<<"["<<p.x<<", "<<p.y<<"]"; return os; /***************** PointArr Class **************************/ const int SIZE=5; // 저장소의크기. class PointArr private: Point arr[size]; int idx; 32 PointArr():idx(0) void AddElem(const Point& elem); void ShowAllData(); Point& operator[](int i); // 배열요소에접근. ; void PointArr::AddElem(const Point& elem) if(idx>=size) cout<<" 용량초과!"<<endl; return ; arr[idx++]=elem; void PointArr::ShowAllData() for(int i=0; i<idx; i++) cout<<"arr["<<i<<"]="<<arr[i]<<endl; Point& PointArr::operator[](int i) return arr[i];

33 사용자정의객체저장배열예 (2) int main(void) PointArr arr; arr.addelem(point(1, 1)); arr.addelem(point(2, 2)); arr.addelem(point(3, 3)); arr.showalldata(); // 개별요소접근및변경 arr[0]=point(10, 10); arr[1]=point(20, 20); arr[2]=point(30, 30); cout<<arr[0]<<endl; cout<<arr[1]<<endl; cout<<arr[2]<<endl; 33

34 대입연산자오버로딩 Jong Hyuk Park

35 디폴트대입연산자 클래스정의시기본적으로 ( 디폴트로 ) '=' 대입연산자제공 멤버대벰버복사 디폴트대입연산자는디폴트복사생성자와유사 기본적으로는얕은복사 (shallow copy) 포인터멤버변수를갖는소멸자호출시문제발생가능성 깊은복사 (deep copy) 로문제해결 35

36 디폴트대입연산자예 #include <iostream> using std::endl; using std::cout; using std::ostream; class Point private: int x, y; Point(int _x=0, int _y=0):x(_x), y(_y) friend ostream& operator<<(ostream& os, const Point& p); ; ostream& operator<<(ostream& os, const Point& p) os<<"["<<p.x<<", "<<p.y<<"]"; return os; int main(void) Point p1(1, 3); Point p2(10, 30); cout<<p1<<endl; cout<<p2<<endl; Point& Point::operator=(const Point& p) x=p.x; y=p.y; return *this; 36 p1=p2; // p1.operator=(p2) cout<<p1<<endl;

37 디폴트대입연산자예 : 얕은복사 (1) #include <iostream> using std::endl; using std::cout; using std::ostream; class Person private: char* name; Person(char* _name); Person(const Person& p); ~Person(); friend ostream& operator<<(ostream& os, const Person& p); ; Person::Person(char* _name) name= new char[strlen(_name)+1]; strcpy(name, _name); Person::Person(const Person& p) name= new char[strlen(p.name)+1]; strcpy(name, p.name); Person::~Person() delete[] name; 37 ostream& operator<<(ostream& os, const Person& p) os<<p.name; return os; int main() Person p1("lee JUNE"); Person p2("hong KEN"); cout<<p1<<endl; cout<<p2<<endl; p1=p2; // 문제의원인, p1.operator=(p2); cout<<p1<<endl; // 소멸자호출에러!!

38 디폴트대입연산자예 : 얕은복사 (2) p1=p2 실행전 p1=p2 실행후 38

39 디폴트대입연산자예 : 깊은복사 39 #include <iostream> using std::endl; using std::cout; using std::ostream; class Person private: char* name; Person(char* _name); Person(const Person& p); ~Person(); Person& operator=(const Person& p); friend ostream& operator<<(ostream& os, const Person& p); ; Person::Person(char* _name) name= new char[strlen(_name)+1]; strcpy(name, _name); Person::Person(const Person& p) name= new char[strlen(p.name)+1]; strcpy(name, p.name); Person::~Person() delete[] name; Person& Person::operator=(const Person& p) delete []name; name= new char[strlen(p.name)+1]; strcpy(name, p.name); return *this; ostream& operator<<(ostream& os, const Person& p) os<<p.name; return os; int main() Person p1("lee JUNE"); Person p2("hong KEN"); cout<<p1<<endl; cout<<p2<<endl; p1=p2; // p1.operator=(p2); cout<<p1<<endl;

40 프로젝트과제 3 프로젝트과제 2 에 10-9 절의은행계좌관리과제프로그램의내용을추가하여라. Container 클래스, 대입연산자오버로딩 9 개의파일로분리 (9-6 절 ) 40

41 Jong Hyuk Park

PowerPoint Template

PowerPoint Template 7. 상속 (inheritance) 의이해 상속의기본개념 상속의생성자, 소멸자 protected 멤버 Jong Hyuk Park 상속의기본개념 Jong Hyuk Park 상속의기본개념 상속의예 1 " 철수는아버지로부터좋은목소리와큰키를물려받았다." 상속의예 2 "Student 클래스가 Person 클래스를상속한다." 아버지 Person 철수 Stduent 3

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

Microsoft PowerPoint - additional-11_13l.ppt [호환 모드]

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;

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 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

More information

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금, 8 장상속 상속의기본개념상속관련문제제기 base 클래스의접근제어와 protected 멤버상속관계에서의생성자와소멸자함수재정의 (function overriding) 디폴트액세스지정자와구조체 derived 클래스로부터의상속다중상속 virtual base 클래스 derived 클래스의디폴트복사생성자와디폴트대입연산자 private 생성자의사용 C++ 프로그래밍입문

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 4 강. 함수와라이브러리함수목차 함수오버로딩 디폴트매개변수 라이브러리함수 clock 함수 난수발생 비버퍼형문자입력 커서이동 프로그래밍문제 1 /21 4 강. 함수와라이브러리함수함수오버로딩 2 /21 함수오버로딩 동일한이름의함수를여러개만들수있음 함수프로파일이달라야함 함수프로파일

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 14. 상속 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 상속의기본 파생클래스와생성자 protected: 제한자 멤버함수의재정의 상속되지않는함수들 상속을이용한프로그래밍

More information

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++, Level 1은객관식사지선다형으로출제예정 1. 다음은 POST(Post of Sales Terminal) 시스템의한콜레보레이션다이어그램이다. POST 객체의 enteritem(upc, qty) 와 Sale 객체의 makellineitem(spec,qty) 를 Java 또는 C ++, C # 언어로구현하시오. 각메소드구현과관련하여각객체내에필요한선언이있으면선언하시오.

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 Chapter 06. 상속의이해 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2017-2 nd 프로그래밍입문 (2) 06-1. 상속의기본개념 상속의기본개념 상속 (inheritance) 한클래스가다른클래스에서정의된속성 ( 자료, 함수 ) 를이어받아그대로사용 이미정의된클래스를바탕으로필요한기능을추가하여정의

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Blog

Blog Objective C http://ivis.cwnu.ac.kr/tc/dongupak twitter : @dongupak 2010. 10. 9.. Blog WJApps Blog Introduction ? OS X -. - X Code IB, Performance Tool, Simulator : Objective C API : Cocoa Touch API API.

More information

<4D F736F F F696E74202D2037C1D65FB0ADC0C7B3EBC6AE2837C0E55FBBF3BCD329>

<4D F736F F F696E74202D2037C1D65FB0ADC0C7B3EBC6AE2837C0E55FBBF3BCD329> C++ 프로그래밍 강의노트 #7: 7.1 상속의필요성및장점 7.2 기반클래스 (Base class) 와파생클래스 (Derived class) 7.3 파생클래스의특징 7.4 기반클래스와파생클래스사이의변환 7.5 실습문제 2007. 4. 18 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 1 학습내용 상속의필요성및장점 기반클래스 (Base

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 C++ Exspresso 제 5 장클래스의기초 이번장에서학습할내용 클래스와객체 객체의일생 메소드 필드 UML 직접클래스를작성해봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 1. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는멤버변수와멤버함수로이루어진다.

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

More information

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관 Hanbit ebook Realtime 30 C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 Safe C++ 블라디미르 쿠스퀴니르 지음 / 정원천 옮김 이 도서는 O REILLY의 Safe C++의 번역서입니다. BACK TO THE BASIC C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 BACK TO THE BASIC C++ 버그 헌팅 버그를

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 6. 구조체와클래스 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 구조체 구조체형 함수매개변수로서의구조체 구조체초기화 클래스 정의, 멤버함수 public 과 private

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

K&R2 Reference Manual 번역본

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

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

Microsoft PowerPoint - 09-C++-7-Template.pptx

Microsoft PowerPoint - 09-C++-7-Template.pptx 예제로배우는 C++ 객체지향프로그래밍 1 템플릿 (template) 이란? 한번의정의로모든자료형에대한처리를하도록고안 처리내용은같으나자료형이다를경우각자료형에대한함수를별도작성해야함 이때템플릿으로함수나클래스를통합정의 각자료형을일반화하여하나의모델로모든자료형을처리 예제로배우는 C++ 객체지향프로그래밍 2 템플릿함수 예제로배우는 C++ 객체지향프로그래밍 3 템플릿함수

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 C++ Espresso 제 1 장기초사항 이번장에서학습할내용 C++ 언어의역사 C++ 언어의특징 객체지향의간단한소개 C++ 개발과정 첫번째예제설명 변수와상수 연산자 C++ 에대한기초적인사항들을살펴봅니다. C++ 언어의개발 C++ 는 1980 년대초에 AT&T 벨연구소의 Bjarne Stroustrup 에의하여개발 C++ 는 C 언어를유지, 확장한것 C with

More information

<4D F736F F F696E74202D2038C0E55FB0ADC0C7B3EBC6AE28B0A1BBF3C7D4BCF6BFCD20B4D9C7FCBCBA29>

<4D F736F F F696E74202D2038C0E55FB0ADC0C7B3EBC6AE28B0A1BBF3C7D4BCF6BFCD20B4D9C7FCBCBA29> C++ 프로그래밍 강의노트 #8: 8.1 상속의관계 8.2 상속에의한포인터와레퍼런스관계 8.3 가상함수와동적결합 8.4 순수가상함수와추상클래스 8.5 가상소멸자 8.6 다중상속 8.7 실습문제 2007. 5. 2 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 1 학습내용 8.1 상속의관계 8.2 파생된객체포인터와파생된객체레퍼런스 객체포인터

More information

106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float Part 2 31 32 33 106 107, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float f[size]; /* 10 /* c 10 /* f 20 3 1

More information

Microsoft PowerPoint - 6주차.pptx

Microsoft PowerPoint - 6주차.pptx 1 6 주차 클래스상속 유전적상속과객체지향상속 2 그래요우리를꼭닮았어요 아빠의유산이다. 나를꼭닮았군 유산상속 유전적상속 : 객체지향상속 생물 동물 식물 상속받음 어류사람나무풀 유전적상속과관계된생물분류 C++ 에서의상속 (Inheritance) 3 C++ 에서의상속이란? 클래스사이에서상속관계정의 객체사이에는상속관계없음 기본클래스의속성과기능을파생클래스에물려주는것

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

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

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - Lect04.pptx OBJECT ORIENTED PROGRAMMING Object Oriented Programming 이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. Class 와 object Class 와객체 클래스의일생 메소드 필드 String Object Class 와객체 3 클래스 클래스의구성 클래스 (l (class): 객체를만드는설계도 클래스로부터만들어지는각각의객체를특별히그클래스의인스턴스

More information

PowerPoint Template

PowerPoint Template 10. 예외처리 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 10.1 개요 10.2 C++ 의예외처리 10.3 Java 의예외처리 10.4 Ada 의예외처리 10.1 예외처리의개요 (1) 3 예외 (exception) 오버플로나언더플로, 0 으로나누기, 배열첨자범위이탈오류와같이프로그램실행중에비정상적으로발생하는사건 예외처리 (exception handling)

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 9 장생성자와접근제어 이번장에서학습할내용 생성자 정적변수 정적메소드 접근제어 this 클래스간의관계 객체가생성될때초기화를담당하는생성자에대하여살펴봅니다. 생성자 생성자 (contructor): 객체가생성될때에필드에게초기값을제공하고필요한초기화절차를실행하는메소드 생성자의예 class Car { private String color; // 색상

More information

기초컴퓨터프로그래밍

기초컴퓨터프로그래밍 구조체 #include int main() { } printf("structure\n"); printf("instructor: Keon Myung Lee\n"); return 0; 내용 구조체 (struct) Typedef 공용체 (union) 열거형 (enum) 구조체 구조체 (structure) 어떤대상을표현하는서로연관된항목 ( 변수 )

More information

Chapter 6 Objects and Classes

Chapter 6 Objects and Classes 11 장상속과다형성 1 강의목표 상속 (inheritance) 을이용하여기본클래스 (base class) 로부터파생클래스 (derived class) 생성 (11.2) 파생클래스유형의객체를기본클래스유형의매개변수 (parameter) 로전달함으로써일반화프로그래밍 (generic programming) 작업 (11.3) 생성자와소멸자의연쇄적처리 (chaining)

More information

Microsoft PowerPoint - CSharp-2-기초문법

Microsoft PowerPoint - CSharp-2-기초문법 2 장. C# 기초문법 자료형 제어문 배열 연산자 순천향대학교컴퓨터학부이상정 1 자료형 순천향대학교컴퓨터학부이상정 2 CTS CTS(Common Type System) 닷넷기반의여러언어에서공통으로사용되는자료형 언어별로서로다른자료형을사용할때발생할수있는호환성문제를해결 값 (Value) 형과참조 (Reference) 형을지원 CTS가제공하는모든자료형은 System.Object를상속받아구현

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

5장.key

5장.key JAVA Programming 1 (inheritance) 2!,!! 4 3 4!!!! 5 public class Person {... public class Student extends Person { // Person Student... public class StudentWorker extends Student { // Student StudentWorker...!

More information

Chapter 4. LISTS

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

More information

Microsoft Word - EEL2 Lab4.docx

Microsoft Word - EEL2 Lab4.docx EEL2 LAB Week 4: Inheritance 1. 다음을만족하는클래스 Employee를작성하시오.(1에서 4번까지관련된문제입니다.) 클래스 Employee 직원는클래스 Regular 정규직와 Temporary 비정규직의상위클래스 필드 : 이름, 나이, 주소, 부서, 월급정보를필드로선언 생성자 : 이름, 나이, 주소, 부서를지정하는생성자정의 메소드 printinfo():

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 2015 학년도 2 학기 public class Person{ public String name; public int age; public Person(){ public Person(String s, int a){ name = s; age = a; public String getname(){ return name; @ 객체의선언 public static void

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1 컴퓨터개론및실습 강의 8 1 2 구조체 (Structure) 2 구조체 (structure) 3 구조체가필요한이유 평면위의점 P(a,b) 는 x 축좌표 a 와 y 축좌표 b 를가지는구조이다. 이와같이하나의데이터형이여러개의독립적인원소를가진구조를 효과적으로처리하기위해서 C 언어에서는구조체를사용한다. y P(a,b) x 3 구조체의정의 4 구조체의정의 평면위의점

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

<BACFC7D1B3F3BEF7B5BFC7E22D3133B1C733C8A3504446BFEB2E687770> 북한의 주요 농업 관련 법령 해설 1) 이번 호와 다음 호에서는 북한의 주요 농업 관련 법령을 소개하려 한다. 북한의 협동농장은 농업협동조합기준규약초안 과 농장법 에 잘 규정되어 있다. 북한 사회주의 농업정책은 사회 주의농촌문제 테제 2), 농업법, 산림법 등을 통해 엿볼 수 있다. 국가계획과 농업부문의 관 계, 농산물의 공급에 관해서는 인민경제계획법, 사회주의상업법,

More information

1 9 2 0 3 1 1912 1923 1922 1913 1913 192 4 0 00 40 0 00 300 3 0 00 191 20 58 1920 1922 29 1923 222 2 2 68 6 9

1 9 2 0 3 1 1912 1923 1922 1913 1913 192 4 0 00 40 0 00 300 3 0 00 191 20 58 1920 1922 29 1923 222 2 2 68 6 9 (1920~1945 ) 1 9 2 0 3 1 1912 1923 1922 1913 1913 192 4 0 00 40 0 00 300 3 0 00 191 20 58 1920 1922 29 1923 222 2 2 68 6 9 1918 4 1930 1933 1 932 70 8 0 1938 1923 3 1 3 1 1923 3 1920 1926 1930 3 70 71

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

자바 프로그래밍

자바 프로그래밍 5 (kkman@mail.sangji.ac.kr) (Class), (template) (Object) public, final, abstract [modifier] class ClassName { // // (, ) Class Circle { int radius, color ; int x, y ; float getarea() { return 3.14159

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

Microsoft PowerPoint - C_9장 포인터 pptx

Microsoft PowerPoint - C_9장 포인터 pptx C 프로그래밍및실습 9. 포인터 세종대학교 목차 1) 포인터란? 2) 배열과포인터 3) 포인터연산 4) 함수와포인터 5) * void 포인터 6) * 함수포인터 2 1) 포인터란? 메모리 프로그램이실행되기위해필요한정보 ( 값 ) 을저장하는공간 1 byte (8 bits) 단위로물리주소가부여되어있음 개념적으로, 메모리는일렬로연속되어있는크기가 1byte 인방들의모음이라고볼수있음

More information

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE> 쉽게풀어쓴 C 언어 Express 제 17 장동적메모리와연결리스트 이번장에서학습할내용 동적메모리할당의이해 동적메모리할당관련함수 연결리스트 동적메모리할당에대한개념을이해하고응용으로연결리스트를학습합니다. 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것

More information

Programming hwp

Programming hwp 프로그래밍개론 2 강의자료 - i - 1 장 C 언어의개선판으로서의 C++ 언어 1.1 C++ 언어의특성 C++ 언어는 C 언어의수퍼셋이다. 즉, C의모든기능을포함하고있으며, 따라서 C++ 컴파일러는 C 프로그램도컴파일할수있다. 다만이에대한예외는 C++ 언어에는 C 언어에는없는키워드들이있으며, 이들을변수나함수이름으로사용하는 C 프로그램은 C++ 컴파일러에의해오류로취급될것이다.

More information

선형대수학 Linear Algebra

선형대수학  Linear Algebra 배열, 컬렉션, 인덱서 array, collection, indexer 소프트웨어학과 HCI 프로그래밍강좌 배열 배열 (array) 동일한자료형을다수선언 선언형식 데이터형식 [ ] 배열이름 = new 데이터형식 [ 개수 ]; int[ ] array = new int[5]; 인덱스 (index) 는 0 에서시작 scores[0] = 80; scores[1] =

More information

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770> 제목 : 미디어정보처리프로그래밍실습모음 일시 : 2002. 6. 15 작성자 : 성용철학번 : 한남대학교정보통신멀티미디어공학부 ( 전자정보통신전공 ) 미디어정보처리프로그래밍실습숙제설명 1.256 X 256 grayscale 의디스플레이프로그램 Resource View 의 menu item 에서 Display 밑에 Raw gray 라마든다음에그림과같이 ID 와

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 5 강스케일링및회전 이대현교수 학습안내 학습목표 3D 오브젝트의확대, 축소및회전방법을이해한다. 학습내용 3D 오브젝트의확대및축소 (Scaling) 3D 오브젝트의회전 (Rotation) 변홖공갂 (Transform Space) SceneNode 의크기변홖 (Scale) void setscale ( Real x, Real y, Real z)

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

2007_2_project4

2007_2_project4 Programming Methodology Instructor: Kyuseok Shim Project #4: external sort with template Due Date: 0:0 a.m. between 2007-12-2 & 2007-12-3 Introduction 이프로젝트는 C++ 의 template을이용한 sorting algorithm과정렬해야할데이터의크기가

More information

제 1 장 기본 개념

제 1 장 기본 개념 이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder)

More information

Microsoft PowerPoint - Chapter_07.pptx

Microsoft PowerPoint - Chapter_07.pptx 프로그래밍 1 1 Chapter 7. Arrays May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 배열의정의를이해한다. 배열의선언방법을이해한다. 각배열원소를접근하는방법을이해한다. 문자열의특징을이해한다. 문자열관련라이브러리의사용방법을이해한다.

More information

Microsoft PowerPoint - 07-C#-2-기초문법.ppt [호환 모드]

Microsoft PowerPoint - 07-C#-2-기초문법.ppt [호환 모드] 기본자료형 연산자와제어문 배열 컬렉션과반복자 순천향대학교컴퓨터학부이상정 1 기본자료형 순천향대학교컴퓨터학부이상정 2 C# 자료형 C# 은.NET 프레임워크가제공하는 CTS(Common Type System) 자료형을사용 CTS는닷넷기반의여러언어에서공통으로사용되는자료형 CTS 는값 (value) 형과참조형 (reference) 형지원 CTS가제공하는모든데이터형은

More information

Microsoft PowerPoint - 08-Queue.ppt

Microsoft PowerPoint - 08-Queue.ppt Chapter Queue ( 큐 ) Dongwon Jeong djeong@kunsan.ac.kr Department of Informatics & Statistics 학습목표 큐의개념및추상데이터타입에대한이해 큐의구현방법 배열 링크드리스트 덱 / 데크의개념과구현방법 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

Microsoft PowerPoint - chap06-4 [호환 모드]

Microsoft PowerPoint - chap06-4 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-4 참고자료 문자열의처리 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 문자열의연산 문자열은배열의형태로구현된응용자료형이므로연산을자유롭게할수없다. 배열에저장된문자열의길이를계산하는작업도간단하지않다.

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

중간고사 (자료 구조)

중간고사 (자료 구조) Data Structures 215 중간고사 문제에서명시적으로기술하지않은부분은교재의내용에근거함. 215. 1. 27. 1 다음용어에대하여간단하게설명하시오 ( 각 3 점 *1=3 점 ) 1 abstract data type 6 Circular linked list 2 recursion 3 time complexity 4 space complexity 5 Single

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

More information

1장. 유닉스 시스템 프로그래밍 개요

1장.  유닉스 시스템 프로그래밍 개요 Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 (front) 후단 (rear) 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element 형으로구성된요소들의순서있는모임

More information

A Tour of Java V

A Tour of Java V A Tour of Java V Sungjoo Ha April 3rd, 2015 Sungjoo Ha 1 / 28 Review First principle 문제가생기면침착하게영어로구글에서찾아본다. 타입은가능한값의집합과연산의집합을정의한다. 기본형이아니라면이름표가메모리에달라붙는다. 클래스로사용자정의타입을만든다. 프로그래밍은복잡도관리가중요하다. OOP 는객체가서로메시지를주고받는방식으로프로그램을구성해서복잡도관리를꾀한다.

More information

Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74

Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74 큐 IT CookBook, C 로배우는쉬운자료구조 ( 개정판 ) Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74 1. 큐 v 큐 (Queue) 데이터의삽입과삭제가양쪽끝에서일어나는자료구조

More information

<39373031C0FCC0CEC3CA2E687770>

<39373031C0FCC0CEC3CA2E687770> 人 文 科 學 제97집 2013년 4월 晩 牛 朴 榮 濬 의 在 滿 時 節 小 說 試 探 Ⅰ. 서론 : 滿 洲 의 時 空 的 意 味 晩 牛 朴 榮 濬 (1911-1976)은 연희전문을 졸업하던 해(1934년)에 단편 模 範 耕 作 生 이 조선일보 신춘문예에, 장편 일년( 一 年 ) 이 신동아 의 현상 소설 모집에, 꽁트 새우젓 이 역시 신동아 에 거의 동시에

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Session #4 C++ REST SDK 2.0 (Codename : Casablanca) 2014 년 3 월 C++ 클라우드환경을준비하다 Motivation : 재사용을통한생산성향상 기계어 어셈블리어 C 언어 C++ 언어 COM,DCOM 실행되는언어 읽을수있는언어 함수재사용 클래스재사용 바이너리재사용 2 Motivation : 원격지기능사용 3 Motivation

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

Microsoft PowerPoint - 2주차.pptx

Microsoft PowerPoint - 2주차.pptx 1 2주차 C 에서 C++로 세상을 먹어 치우는 소프트웨어 2 소프트웨어 기업의 세상 미국의 대형 서점 보더스 -> 아마존에 대패 블록버스터(Blockbuster) -> 네플릭스(Neflix)에 대패 ebay, Facebook, Groupon, Skype, Twitter, Android, 아이튠스, 판도라, 픽사 등 엄청난 소프트웨어 인력들을 필요로 하는 세상이

More information

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic

More information

머 리 말 어떤 책이 좋은 책일까? 한 번 쓰고 버려지는 책이 되지 않기 위해 지난 20개월간 무던히도 애를 썼습니 다. 이제 책이 나왔지만, 여전히 세상에 내놓기가 두렵습니다. C 언어가 최고의 언어라고 생각하고 있었던 1980년대 후반, 저자는 C++를 처음 접하곤

머 리 말 어떤 책이 좋은 책일까? 한 번 쓰고 버려지는 책이 되지 않기 위해 지난 20개월간 무던히도 애를 썼습니 다. 이제 책이 나왔지만, 여전히 세상에 내놓기가 두렵습니다. C 언어가 최고의 언어라고 생각하고 있었던 1980년대 후반, 저자는 C++를 처음 접하곤 국립중앙도서관 출판시도서목록(CIP) (명품) C++ programming / 황기태 지음. -- 파주 : 생능출판사, 2013 p. ; cm ISBN 978-89-7050-783-5 93000 : \29000 C++ 프로그래밍[C++ programming] 005.135-KDC5 005.133-DDC21 CIP2013012209 머 리 말 어떤 책이 좋은

More information

5.스택(강의자료).key

5.스택(강의자료).key CHP 5: https://www.youtube.com/watch?v=ns-r91557ds ? (stack): (LIFO:Last-In First-Out):. D C B C B C B C B (element) C (top) B (bottom) (DT) : n element : create() ::=. is_empty(s) ::=. is_full(s) ::=.

More information

Java ~ Java program: main() class class» public static void main(string args[])» First.java (main class ) /* The first simple program */ public class

Java ~ Java program: main() class class» public static void main(string args[])» First.java (main class ) /* The first simple program */ public class Linux JAVA 1. http://java.sun.com/j2se/1.4.2/download.html J2SE 1.4.2 SDK 2. Linux RPM ( 9 ) 3. sh j2sdk-1_4_2_07-linux-i586-rpm.bin 4. rpm Uvh j2sdk-1_4_2_07-linux-i586-rpm 5. PATH JAVA 1. vi.bash_profile

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

More information

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor 19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색

More information

ch3.hwp

ch3.hwp 미디어정보처리 (c) -4 한남대 정보통신멀티미디어학부 MCCLab. - -...... (linear filtering). Z k = n i = Σn m Σ j = m M ij I ji 컨볼루션 영역창 I I I I 3 I 4 I 5 I 6 I 7 I 8 x 컨볼루션 마스크 M M M M 3 M 4 M 5 M 6 M 7 M 8 I 입력 영상 Z 4 = 8 k

More information

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

Microsoft PowerPoint - 13_UMLCoding(2010).pptx LECTURE 13 설계와코딩 최은만, CSE 4039 소프트웨어공학 설계구현매핑 UML 설계도로부터 Java 프로그래밍언어로의매핑과정설명 정적다이어그램의구현 동적다이어그램의구현 최은만, CSE 4039 소프트웨어공학 2 속성과오퍼레이션의구현 Student - name : String #d department t: String Sti packageattribute

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

YRRZBRRLMCEQ.hwp

YRRZBRRLMCEQ.hwp C언어2 4차시강의자료 이대종( 한경대학교) 1 차시. 자료형( 데이터유형) 1.1 문자형데이터형식 ( char 형 ) 1.2 소수점이없는정수형 ( int 형 ) 1.3 소수점이있는실수형 (float 형, double 형 ) 2 차시. 연산자 2.1 2.2 2.3 2.4 산술연산자 증감연산자 관계연산자 논리연산자 3 차시. 제어문 ( 조건문, 반복문) 3.1

More information

10장.key

10장.key JAVA Programming 1 2 (Event Driven Programming)! :,,,! ( )! : (batch programming)!! ( : )!!!! 3 (Mouse Event, Action Event) (Mouse Event, Action Event) (Mouse Event, Container Event) (Key Event) (Key Event,

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

Microsoft PowerPoint - 06-Body Data Class.pptx

Microsoft PowerPoint - 06-Body Data Class.pptx Digital 3D Anthropometry 6. Body Data Class Sungmin Kim SEOUL NATIONAL UNIVERSITY Body Data Class 의설계 Body Model 의관리 인체데이터입출력 데이터불러오기 인체모델그리기 TOpenGL의확장 프로젝트관리 프로젝트저장 / 불러오기 추가기능구현 좌표축정렬 Face, Wireframe,

More information

Chapter_06

Chapter_06 프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다.

More information

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx 1. MATLAB 개요와 활용 기계공학실험 I 2013년 2학기 MATLAB 시작하기 이장의내용 MATLAB의여러창(window)들의 특성과 목적 기술 스칼라의 산술연산 및 기본 수학함수의 사용. 스칼라 변수들(할당 연산자)의 정의 및 변수들의 사용 방법 스크립트(script) 파일에 대한 소개와 간단한 MATLAB 프로그램의 작성, 저장 및 실행 MATLAB의특징

More information