C++ Programming

Similar documents
C++ Programming

Microsoft PowerPoint - Chapter 10.ppt

C++ Programming

C++ Programming

C++ Programming

C++ Programming

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - [2009] 02.pptx

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint - additional01.ppt [호환 모드]

설계란 무엇인가?

쉽게 풀어쓴 C 프로그래밍

(Microsoft PowerPoint - 11\300\345.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

C프로-3장c03逞풚

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

chap10.PDF

OCW_C언어 기초

Microsoft PowerPoint - 06_(C_Programming)_(Korean)_Characters_Strings

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - additional08.ppt [호환 모드]

PowerPoint Template

080629_CFP °ø°³¿ë.hwp

설계란 무엇인가?

Microsoft PowerPoint - Chapter 1-rev

Microsoft PowerPoint - Chap12-OOP.ppt

PowerPoint Presentation

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - additional07.ppt [호환 모드]

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

설계란 무엇인가?

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

Microsoft PowerPoint - additional06.ppt [호환 모드]

02장.배열과 클래스

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing

슬라이드 1

1. 표준입출력 C++ : C의모든라이브러리를포함 printf, scanf 함수사용가능예 : int, double, 문자열값을입력받고출력하기 #include <cstdio> int ivar; double dvar; char str[20]; printf("int, dou

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - additional03.ppt [호환 모드]

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

PowerPoint Template

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - 9ÀÏ°_ÂüÁ¶ÀÚ.ppt

1. 기본형의형변환복습 C/C++ 형변환의종류 자동형변환 ( 묵시적형변환 ) 강제형변환 ( 명시적형변환 ) 기본형의자동형변환의예 1. 배열 to 포인터변환 배열명은해당배열의첫번째원소의 주소로변환됨 int ary[10]; int *pary = ary; 2. 함수 to 포

PowerPoint Presentation

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

C++-¿Ïº®Çؼ³10Àå

11장 포인터

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

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

설계란 무엇인가?

Microsoft PowerPoint - chap06-2pointer.ppt

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

프입2-강의노트-const-friend-static

Microsoft PowerPoint - ch07 - 포인터 pm0415

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

금오공대 컴퓨터공학전공 강의자료

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

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint 프레젠테이션

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

설계란 무엇인가?

C O N T E N T S 목 차 요약 / 1 I. 중남미화장품시장현황 / 3 Ⅱ. 주요국별시장정보 / 9 ( 트렌드 유통망 인증 ) 1. 브라질 / 9 2. 멕시코 / 콜롬비아 / 칠레 / 64 Ⅲ. 우리기업진출전략 / 79 # 첨부. 화장품관

Microsoft PowerPoint - chap06-1Array.ppt

KNK_C_05_Pointers_Arrays_structures_summary_v02

Slide 1

Slide 1

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

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

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - 07_(C_Programming)_(Korean)_Composite_Data_Types

PowerPoint Template

프입2-강의노트-C++기초

8. 클래스 D는클래스 A, 클래스 B, 클래스 C로부터상속받아맊들고싶다. 아래빈칸을채우시오. ( 대소문자주의하시오 ) class D { ; Student s; 11. 다음프로그램의실행결과는? 9. 다음프로그램의실행결과는? class A{ A(){cout << " 생성

PowerPoint 프레젠테이션

Microsoft PowerPoint - 05장(함수) [호환 모드]

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

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

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - ch08 - 구조체 (structure) am0845

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

12 장파일입출력 파일입출력의기초파일열기, 사용하기, 닫기파일입출력모드문자단위파일입출력텍스트파일과이진파일 read, write 함수에의한이진파일입출력임의접근입출력스트림상태입출력연산자오버로딩과파일입출력 C++ 프로그래밍입문

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Blog

Transcription:

C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com

목 차 연산자다중정의 C++ 스타일의문자열 2

연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3

연산자다중정의 연산자다중정의 (Operator Overloading) operator 와연산자기호를통해연산자의기능을다중정의 클래스를 C++ 의기본자료형과같이다룰수있는방법 operator+() ; // 주어진연산자의기능정의 4

이항연산자다중정의 이항연산자 (binary operator) 다중정의 이항연산자 : 두개의연산자에대한연산을수행하는연산자 대표적인이항연산자 : +, -, *, /, % p + 10 p.operator+(int) 멤버함수로다중정의한함수 int x; int y; ( 생략 ) Point operator+(const Point &p, int) 일반함수로다중정의한함수 5

이항연산자다중정의 정의 (cont d) 멤버함수에의한이항연산자다중정의 class Point int x, y; public: Point(int t x = 0, int y = 0); void ShowPosition(void); Point operator+(int num) Point int x; int y; temp(x + num, y + num); Point Point(int = 0, int = 0); void ShowPosition(); Point operator+(int); ; return temp; int main(void) Point a(10, 20); Point res = a + 10; // Point res = a.operator+(10); 6

이항연산자다중정의 정의 (cont d) 일반함수에의한이항연산자다중정의 class Point int x, y; public: Point(int t x = 0, int y = 0); void ShowPosition(void); friend Point operator+(const Point &, int ; num); Point::Point(int x, int y) this->x = x; this->y = y; int main(void) Point a(10, 20); Point int x; Point res = a + 10; int y; Point(int = 0, int = 0); void ShowPosition(); friend Point operator+(const Point &, int); 7

이항연산자다중정의 이항연산자의교환법칙 정의 (cont d) 교환법칙성립 p + 10 == 10 + p int x; int y; ( 생략 ) Point 8

이항연산자다중정의 정의 (cont d) 프로그램예제 : 이항연산자의다중정의 (1/2) #include <iostream> using std::cin; using std::cout; using std::endl; class Point int x, y; public: Point(int x = 0, int y = 0); void ShowPosition(); Point operator+(int num); friend Point operator+(int num, Point &p); ; Point::Point(int x, int y) this->x = x; this->y = y; void Point::ShowPosition() cout << "(" << x << ", " << y << ")" << endl; 9

이항연산자다중정의 정의 (cont d) 프로그램예제 : 이항연산자의다중정의 (2/2) Point Point::operator+(int num) Point return temp; temp(x + num, y + num); Point operator+(int num, Point &p) return p + num; int main() Point p1(10, 20); cout << "p1 : "; p1.showposition(); Point p2 = p1 + 10; cout << "\np1 + 10" << endl; cout << "p2 : "; p2.showposition(); p2 = 10 + p1; cout << "\np2 = 10 + p1" << endl; cout << "p2 : "; p2.showposition(); 10

단항연산자의다중정의 단항연산자 (unary operator) 다중정의 단항연산자 : 하나의피연산자에대한연산을수행하는연산자 대표적인단항연산자 : ++, -- ++p p.operator++() 멤버함수로다중정의한함수 int x; int y; ( 생략 ) Point operator++(point &p) 일반함수로다중정의한함수 11

단항연산자다중정의 정의 (cont d) 멤버함수에의한단항연산자다중정의 class Point int x, y; public: Point(int t x = 0, int y = 0); void ShowPosition(void); Point &operator++() ++x; ++y; int x; int y; Point Point(int = 0, int = 0); void ShowPosition(); Point &operator++(); ; return *this; int main(void) Point a(10, 20); ++a; // a.operator++(); 12

단항연산자다중정의 정의 (cont d) 일반함수에의한단항연산자다중정의 class Point int x, y; public: Point(int t x = 0, int y = 0); void ShowPosition(void); friend Point &operator++(point &); Point &operator++(point &p) ++p.x; ++p.y; return p; int main(void) Point Point a(10, 20); int x; ++a; int y; Point(int = 0, int = 0); void ShowPosition(); friend Point &operator++(point &); 13

단항연산자다중정의 전위와후위증감연산자 증감연산자 : ++, -- 정의 (cont d) ++p p.operator++() p++ p.operator++(int) --p p.operator--() p-- p.operator--(int) 14

cin 과 cout cin, cout 그리고 endl cout << Hi~ Clickseo ; cout << 100; cout << 3.14159; cout << endl; cout << Hi~ Clickseo << 100 << 3.14159 << endl; int n; double d; char name[12]; cin >> n; cin >> d; cin >> name; cin >> n >> d >> name; 15

cin, cout 그리고 endl (cont d) 프로그램예제 : cin, cout 그리고 endl (1/2) #include <iostream> #include <cstdio> namespace mystd char *endl = " n"; class ostream public: ostream &operator<<(char *str) ; ostream cout; printf(" %s ", str); return *this; ostream &operator<<(int n) printf(" %d ", n); return *this; ostream &operator<<(double d) printf(" %f ", d); return *this; 16

cin, cout 그리고 endl (cont d) 프로그램예제 : cin, cout 그리고 endl (2/2) using mystd::cout; t using mystd::endl; int main() cout << "Hi~ Clickseo" << endl; cout << 100 << endl; cout << 3.14159 << endl; cout << "Hi~ Clickseo" << 100 << 3.14159 << endl; 17

C++ 스타일의문자열 연산자다중정의의이해 C++ 스타일의문자열 C/C++ 스타일의문자열 문자열과연산자다중정의 string 클래스멤버함수 18

C 스타일의문자열 C/C++ 스타일의문자열 C++ 에서제공하는문자열조작함수를사용 : <cstring> #include <iostream> #include <cstring> int main(void) char char int str[] = "Hi~ Clickseo!!!"; copy[1024]; len = strlen(str); strcpy(copy, str); std::cout << "str : " << str << std::endl; std::cout << "copy : " << copy << std::endl; 19

C/C++ 스타일의문자열 (cont d) C++ 스타일의문자열 string : basic_string 클래스를재정의한형태 #include <iostream> #include <string> using std::cout; using std::endl; using std::string; int main(void) string s = "Hello World!!!!"; cout << s << endl; 20

문자열과연산자다중정의 프로그램예제 : 문자열복사 #include <iostream> #include <string> using std::cout; using std::endl; using std::string; int main(void) string string str = "Hello World!!!!"; copy; cout << "str : " << str << endl; cout << "copy : " << copy << endl; copy = str; cout << "str : " << str << endl; cout << "copy : " << copy << endl; 문자열복사 : str2 = str1; 21

문자열과연산자다중정의 프로그램예제 : 문자열의결합 #include <iostream> #include <string> using std::cout; using std::endl; using std::string; int main(void) 정의 (cont d) 문자열의결합 : str1 + str2 string str1 = "Hi~ "; string str2 = "Clickseo"; cout << "str1 : " << str1 << endl; cout << "str2 : " << str2 << endl; str1 = str1 + str2; cout << "str1 : " << str1 << endl; cout << "str2 : " << str2 << endl; 22

문자열과연산자다중정의 프로그램예제 : 문자열의비교 #include <iostream> #include <string> using std::cout; using std::endl; 정의 (cont d) using std::string; int main(void) string str1 = "Hi~ "; string str2 = "Clickseo"; 문자열의비교 : str1 == str2 str1!= str2 cout << "str1 : " << str1 << endl; cout << "str2 : " << str2 << endl; if( str1 == str2 ) if( str1!= str2 ) cout << " 일치!!!" << endl; cout << " 불일치!!!" << endl; 23

string 클래스멤버함수 (cont d) 프로그램예제 : 공백이포함된문자열입력 #include <iostream> #include <string> using std::cout; using std::endl; using std::string; int main(void) char name[12]; // C 스타일 string str; // C++ 스타일 cin.getline(name, 12); getline(cin, str); // C 스타일 // C++ 스타일 cout << "name : " << name << endl; cout << "str : " << str << endl; 24

string 클래스멤버함수 (cont d) 프로그램예제 : 문자열의길이 #include <iostream> #include <string> using std::cout; using std::endl; using std::string; int main(void) string string str1; str2 = "Hello World!!!"; string str3 = "12345"; 문자열의길이 : str.size(); cout << "str1 : " << str1.size() << endl; cout << "str2 : " << str2.size() << endl; cout << "str3 : " << str3.size() << endl; 25

string 클래스멤버함수 (cont d) 프로그램예제 : 문자열의검색 #include <iostream> #include <string> using std::cout; using std::endl; using std::string; int main(void) string str = "Hi~ Clickseo"; 문자열의검색 : str.find(s); cout << "str : " << str << endl; cout << str.find("clickseo") << endl; 26

string 클래스멤버함수 (cont d) 프로그램예제 : 문자열의일부분얻기 #include <iostream> #include <string> using std::cout; using std::endl; using std::string; int main(void) string str = "Hi~ Clickseo"; int len = str.size(); string sub = str.substr(len - 3, 3); cout << "str : " << str << endl; cout << "sub : " << sub << endl; 일부문자열추출 : str.substr(begin, size); 27

참고문헌 [1] 윤성우, 열혈강의 C++ 프로그래밍, 프리렉, 2007. [2] 이현창, 뇌를자극하는 C++ 프로그래밍, 한빛미디어, 2008. [3] H.M. HM Deitel, P. J. Deitel, C++ HOW TO PROGRAM : 6th Edition, Prentice Hall, 2009. [4] Wikipedie, http://www.wikipedia.org/. 이강의자료는저작권법에따라보호받는저작물이므로무단전제와무단복제를금지하며, 내용의전부또는일부를이용하려면반드시저작권자의서면동의를받아야합니다. Copyright Clickseo.com. All rights reserved. 28