3장. 클래스의 기본.

Slides:



Advertisements
Similar presentations
11 주차 : Structures and Unions. 2 Introduction structure 는 다른 타입들의 변수를 모은 타입이며 그 타입들을 structure 의 멤버 라 한다. union 은 다른 타입의 여러 변수들을 하나 의 기억 장소에 보관함으로써 한.
Advertisements

Kim Yeon Hee 8장. 상속과 다형성 Kim Yeon Hee.
2007 1학기 12 배열.
명품 C++ 프로그래밍 3장. 클래스와 객체.
C++ Espresso 제1장 기초 사항.
Chapter 6 구조체.
실전 프로젝트 2 : 숫자야구 숫자 야구를 구현해보자.
제6장 객체배열과 벡터 객체 배열을 이해한다. 벡터(vector) 클래스를 사용할 수 있다.
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
5장. 리스트 리스트 학습목표 목록이나 도표처럼 여러 데이터를 관리할 수 있는 자료형을 추상화
C++ Exspresso 제5장 클래스의 기초.
16강. 자바 빈 빈 이란? 빈 만들기 빈 관련 액션 태그(useBean, getProperty, setProperty)
Internet Computing KUT Youn-Hee Han
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
8. 객체와 클래스 (기본).
[ 단원 08 ] 예외처리와 스레드.
6장. printf와 scanf 함수에 대한 고찰
배열, 포인터, 참조 배열은 같은 형을 가지는 변수들의 묶음이다..
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 14. 포인터와 함수에 대한 이해.
자료 구조: Chapter 3 (2)구조체, 포인터
6. 기본 클래스 프로그래밍 6 컴퓨터공학과 신동일.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
7장 클래스.
18장. 헤더 파일과 구현 파일 01_ 헤더 파일과 구현 파일의 사용.
Chapter 05. 클래스 완성. chapter 05. 클래스 완성 01. 복사 생성자 복사 생성(Copy Construction) 생성될 때 자신과 같은 타입의 객체를 변수로 받아, 이 객체와 같은 값을 갖는 새로운 객체를 생성하는 것 명시적인 생성 과정뿐만.
2010학년도 2학기 객체지향의 이해.
C ++ 프로그래밍 시작.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 08. 상속과 다형성.
This, static, final 지정 예약어 자바 4대 중첩 클래스
C++ 개요 객체지향 윈도우즈 프로그래밍 한국성서대학교 유일선
6장 객체-지향 설계 ①.
상속과 인터페이스 클래스의 상속에 대하여 인터페이스에 대하여.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
Chapter 3 클래스. 최호성.
6장 객체-지향 설계 ①.
DataScience Lab. 박사과정 김희찬 (월)
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제 12장. 사용자 정의형으로서의 클래스 학기 프로그래밍언어및실습 (C++).
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
JA A V W. 04.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 22. 구조체와 사용자 정의 자료형1.
멤버 함수인 operator+()가 실행, 또는 전역 함수인 operator+()가 실행 Point p3 = p1+p2; 에서
제8장 포인터와 동적객체 생성 포인터의 개념을 이해한다. 포인터와 관련된 연산을 이해한다.
조 병 규 Software Quality Lab. 한 국 교 통 대 학 교
5. 논리적 자료표현 : 구조체.
[ 단원 06 ] 상속과 다형성.
18장. 다차원 배열 그리고 포인터.
3장,4장 발표 서정우.
03. 메모리 관리 C++ 프로그램에서 다룰 수 있는 메모리의 종류
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
2015년 2학년 1반.
다문화 사회의 이해 배 상 훈 . 1. 한국사회의 다문화현상 2. 원인과 정책으로 살펴본 다문화 한국사회.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
새로운 타입 정의하기 Defining new types
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
실습과제 1번 /* 1. 멤버 변수로 반경 radius를 갖고, 그 값을 모니터에 출력하는
C# 09장. 클래스와 객체.
17장. 포인터의 포인터.
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
C++ 언어의 특징
3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
프로그래밍 기법 최적화 프로그래밍.
Presentation transcript:

3장. 클래스의 기본

3-1 구조체와 클래스 구조체의 유용성 관련 있는 데이터를 하나의 자료형으로 묶을 수 있다. 3-1 구조체와 클래스 구조체의 유용성 관련 있는 데이터를 하나의 자료형으로 묶을 수 있다. 따라서, 프로그램의 구현 및 관리가 용이해진다. 함께 움직이는 데이터들을 묶어주는 효과! 그림 3-1

3-1 구조체와 클래스 C 언어의 구조체에 대한 불만 모든 사용자 정의 자료형에 대한 불만 3-1 구조체와 클래스 C 언어의 구조체에 대한 불만 모든 사용자 정의 자료형에 대한 불만 기본 자료형으로 인식해 주지 않는다. struct Person{ int age; char name[10]; };   int main() { int a=10; Person p; // struct Person p; return 0; } C++의 철학과 맞물리면?

3-1 구조체와 클래스 함수를 넣으면 좋은 구조체 프로그램=데이터+데이터 조작 루틴(함수) 3-1 구조체와 클래스 함수를 넣으면 좋은 구조체 프로그램=데이터+데이터 조작 루틴(함수) 잘 구성된 프로그램은 데이터와 더불어 함수들도 부류를 형성 oo1.cpp, oo2.cpp, oo3.cpp 그림 3-4

3-1 구조체와 클래스 oo2.cpp와 oo3.cpp의 비교 struct Account { struct Account { 3-1 구조체와 클래스 oo2.cpp와 oo3.cpp의 비교 struct Account { char accID[20]; char secID[20]; char name[20]; int balance; };   void Deposit(Account &acc, int money) { acc.balance+=money; } void Withdraw(Account &acc, int money) acc.balance-=money; struct Account { char accID[20]; char secID[20]; char name[20]; int balance;   void Deposit(int money){ balance+=money; } void Withdraw(int money){ balance-=money; };

3-1 구조체와 클래스 그림 3-5 struct Account { char accID[20]; char secID[20]; 3-1 구조체와 클래스 struct Account { char accID[20]; char secID[20]; char name[20]; int balance; void Deposit(int money){ balance+=money; } void Withdraw(int money){ balance-=money; }; int main(void) { Account yoon={"1234", "2321", "yoon", 1000}; yoon.Deposit(100); cout<<"잔 액 : "<<yoon.balance<<endl; return 0; }  그림 3-5

3-1 구조체와 클래스 구조체가 아니라 클래스(Class) 클래스 = 멤버 변수 + 멤버 함수 3-1 구조체와 클래스 구조체가 아니라 클래스(Class) 클래스 = 멤버 변수 + 멤버 함수 변수가 아니라 객체(Object: 완전한 대상체) oo4.cpp 그림 3-6

3-2 클래스와 객체 사물의 관찰 이후의 데이터 추상화 3-2 클래스와 객체 사물의 관찰 이후의 데이터 추상화 현실 세계의 사물을 데이터적인 측면과 기능적인 측면을 통해서 정의하는 것 특징 1. 발이 네 개 특징 2. 코의 길이가 5미터 내외 특징 3. 몸무게는 1톤 이상 특징 4. 코를 이용해서 목욕을 함 특징 5. 코를 이용해서 물건을 집기도 함

3-2 클래스와 객체 데이터 추상화 이후의 클래스화 추상화된 데이터를 가지고 사용자 정의 자료형을 정의하는 것 그림 3-7 3-2 클래스와 객체 데이터 추상화 이후의 클래스화 추상화된 데이터를 가지고 사용자 정의 자료형을 정의하는 것 그림 3-7 그림 3-8

3-2 클래스와 객체 클래스화 이후의 인스턴스화 클래스 기반의 객체(Object) 생성 그림 3-9

3-3 클래스 멤버의 접근 제어 클래스의 내부 접근과 외부 접근 class Counter { public: int val; 3-3 클래스 멤버의 접근 제어 클래스의 내부 접근과 외부 접근 class Counter { public: int val; void Increment(void) { val++; //내부 접근 } };   int main(void) Counter cnt; cnt.val=0; //외부 접근 cnt.Increment(); //외부 접근 cout<<cnt.val<<endl; //외부 접근  return 0;

3-3 클래스 멤버의 접근 제어 그림 3-10 const int OPEN=1; const int CLOSE=2; 3-3 클래스 멤버의 접근 제어 const int OPEN=1; const int CLOSE=2; class Door{ private: int state; public: void Open(){ state=OPEN; } void Close(){ state=CLOSE; } void ShowState(){ …생략… } }; int main() { Door d; //d.state=OPEN; d.Open(); d.ShowState(); return 0; } 그림 3-10

3-4 멤버 함수의 외부 정의 그림 3-11 class Door{ private: int state; public: 3-4 멤버 함수의 외부 정의 class Door{ private: int state;   public: void Open(); void Close(); void ShowState(); }; void Door::Open(){ state=OPEN; } void Door::Close(){ state=CLOSE; void Door::ShowState(){ … 생 략 … 그림 3-11

3-4 멤버 함수의 외부 정의 멤버 함수의 인-라인화 equal! inline void Door::Open(){ 3-4 멤버 함수의 외부 정의 멤버 함수의 인-라인화 const int OPEN=1; const int CLOSE=2; class Door{ private: int state; public: void Open(){ state=OPEN; } void Close(){ state=CLOSE; void ShowState() { …생략… }; class Door{ private: int state;   public: void Open(); void Close(); void ShowState(); }; inline void Door::Open(){ state=OPEN; } inline void Door::Close(){ state=CLOSE; inline void Door::ShowState(){ … 생 략 … equal!

3-4 멤버 함수의 외부 정의 헤더 파일을 이용한 파일의 분할 그림 3-12