6. 기본 클래스 프로그래밍 6 컴퓨터공학과 신동일.

Slides:



Advertisements
Similar presentations
 사 회  4 학년 2 학기  2. 가정 생활과 여가 생활 > 2. 여가 생활의 변화 ( 7-8 /13 ) 윷놀이와 컴퓨터 게임.
Advertisements

1. 사고사항 2. 배상책임 유무 동 사고는 음식물을 공급한 우리김밥의 음식물 하자로 인하여 발생한 사고이므로 피해자에게 손해를 배상할 책임이 있으며, 피해자의 음식물 관리상의 하자는 없다고 판단되므로 피해자 과실 없음 3. 피해자 인적사항 및 예상손해 사항 4. 합의사항.
표어 : 온 집으로 더불어 하나님을 경외하자(행10:2)
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
초등학생들이 좋아하는 웹툰 우리반학생들이 많이보는 웹툰.
금호타이어 광고에 대한 오류. 항만물류학부 물류운영정보전공 박기훈.
명품 C++ 프로그래밍 3장. 클래스와 객체.
상품 제안서 ■ 상 품 명 : ■ 협력사명 : 이노비즈협회 (주)공영홈쇼핑.
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
안식일을 기억하여 거룩한 날로 지켜라 출애굽기 20장 8절 말씀 -아멘-.
8. 객체와 클래스 (기본).
C++ Espresso 제9장 다형성.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
상속이란? - 기반클래스로부터 다른 클래스를 파생하는 법 protected란? 가상함수 (virtual function)
윤 홍 란 4 장 클래스 작성 윤 홍 란
Chapter 05. 클래스 완성. chapter 05. 클래스 완성 01. 복사 생성자 복사 생성(Copy Construction) 생성될 때 자신과 같은 타입의 객체를 변수로 받아, 이 객체와 같은 값을 갖는 새로운 객체를 생성하는 것 명시적인 생성 과정뿐만.
4월 부모교육 - 유 아 기 - 00초등학교병설유치원.
C ++ 프로그래밍 시작.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 08. 상속과 다형성.
This, static, final 지정 예약어 자바 4대 중첩 클래스
김 정 석 Web Programming 김 정 석
C++ 개요 객체지향 윈도우즈 프로그래밍 한국성서대학교 유일선
배열이란? 배열의 선언? - 배열과 포인터의 관계? 문자열이란? 문자배열 연결 리스트
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
장애인의 소득보장 서비스 1.
Chapter 3 클래스. 최호성.
재난 안전.
DataScience Lab. 박사과정 김희찬 (월)
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
다른 사람의 입장에서 생각하고 이해하는 마음 갖기
마을살이 제천덕산면을 중심으로 농촌공동체연구소장 한석주.
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
(생각열기) 비가 그칠 때 생기는 무지개는 몇 가지 색이 나타나는가? 그 원인은??
과거,미래,현재의 아동관 -아동 학대- (4조).
Chap. 14 성능향상시키기 PS Lab. 이지연.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
경찰조직관리론.
3장. 클래스의 기본.
멤버함수 중첩( 복사 생성자 ) - 연사자 중첩 - 동적 메모리를 가지는 클래스를 지원 하도록 멤버 함수 작성
나의 커리어플랜 6학년3반 최 은 진.
노인의 건강사정 학습목표 -노인의 건강 사정 요소를 인식.
Lua script cpp서 사용하기 Lua 버전
제8장 포인터와 동적객체 생성 포인터의 개념을 이해한다. 포인터와 관련된 연산을 이해한다.
A Basic of C++.
1) 화가 이중섭 (작품 세계) 국어 중학교 1학년/2학기 1.능동적으로 읽기> 1)화가 이중섭 (2/6) [화면 소개]
비만에 관하여 장 덕 고 등 학 교.
18장. 다차원 배열 그리고 포인터.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
3장,4장 발표 서정우.
03. 메모리 관리 C++ 프로그램에서 다룰 수 있는 메모리의 종류
절복은 왜 하는가 ◑ 안녕하세요. 입니다. 오늘은 절복은 왜 하는가에 대해서 여러분과 함께 공부하도록 하겠습니다. 지부 지구.
2015년 2학년 1반.
하나님의 말씀은 나를 변화 시켜요!! 스가랴 9장9절 말씀 -아멘- 보라! 네 왕이 임하 나니 그는 겸손 하여서 나귀를 타나니
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
Java 5장. 객체지향 개념 public class SumTest {
새로운 타입 정의하기 Defining new types
한 학기 한 권 읽기 - 책을 읽고 생각을 나누어요 - 4-2학기 독서단원
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
하나님의 말씀은 나를 변화 시켜요 죄와 사망의 성령의 법이 법에서 여러분을 해방 시켜 주었습니다 로마서 8장2절 말씀 –아멘-
실습과제 1번 /* 1. 멤버 변수로 반경 radius를 갖고, 그 값을 모니터에 출력하는
과목명: 고전문학 특강 학번: , 이름: 황인대, 윤정아 담당교수: 변승구 교수님
기술가정 1학년 1. 나와 가족의 이해 > 1. 청소년의 특징 ( 5 / 6 ) 청소년기 사회적 발달 수업계획 수업활동.
2) 숨쉬는 영정 국어 중학교 1학년/2학기 6.문학과 독자 > 2) 숨쉬는 영정 (4/6) [화면 소개]
발 표 자 : 7조 손 창 국 윤 오 성, 박 진 완 객체 지향 프로그래밍 C++
Presentation transcript:

6. 기본 클래스 프로그래밍 6 컴퓨터공학과 신동일

형 (type) 변수의 형 차지하는 메모리 크기 포함할 수 있는 정보의 종류 수행 가능한 동작의 종류 크고 복잡한 실제 세계의 문제를 해결하기 위하여 새로운 형의 창조가 요구됨

클래스 클래스의 선언 -> 새로운 형 클래스 데이터 멤버, 멤버 변수: 클래스 내부의 변수 메쏘드(method), 멤버 함수: 클래스 내부의 함수 클래스 선언 class Cat { public: unsigned int itsAge; unsigned int itsWeight; Meow(); };

클래스 객체의 정의 Cat Frisky; // Cat 정의 객체 = 인스턴스 (instance) 멤버 엑세스 Frisky.Weight = 50; Frisky.Meow();

Private와 Public 클래스의 모든 멤버는 기본값에 따라 private이다! class Cat { unsigned int itsAge; unsigned int itsWeight; Meow(); }; Cat Garf; Garf.itsweight = 100; // error!

Private의 이용 멤버 데이터는 일반적으로 private으로 설정함 외부에서 직접적인 access를 방지 단, 멤버 데이터의 외부 설정을 위하여 public accessor method를 선언 priavte 멤버 변수의 값을 읽거나 설정하는 클래스 멤버 함수로서 public으로 선언된 것 불편 감수의 이유 데이터의 이용 방법과 저장 방법의 분리 데이터 사용 함수를 재정의 하지 않고도 데이터 저장 방법을 변경 가능

클래스 함수의 구현 int Cat:::Meow() { … } 교과서 리스팅 6.3 참조 생성자와 소멸자 생성자: 클래스 멤버 변수의 초기화, 인자 가능 Cat::Cat(); 소멸자: 객체에 할당된 메모리 청소, 인자가 없음 Cat::~Cat(); 기본 생성자와 소멸자: 컴파일러가 설정, 아무일로 하지 않음

const 멤버 함수 const 클래스 메쏘드: 그 함수가 클래스 내부의 변수값을 변경하지 않을 것이라는 약속 void SomeFunction() const; 만약, 함수를 const로 선언한 후 함수 구현부가 내부 변수를 변경 -> 컴파일 오류! 가능한 많은 메쏘드를 const로 선언하라! -> 컴파일러가 오류를 찾아준다! 교과서 P. 171: 컴파일러가 오류를 잡아내도록 하는 이유는?

클래스 선언과 메쏘드 정의 클래스 선언: 헤더 파일 메쏘드 정의: 본 파일, .CPP 클래스 선언의 기능 클래스가 무엇이고 어떤 데이터를 포함하며 어떤 함수를 가지는지 알린다 클래스의 인터페이스(interface) 메쏘드 정의 함수가 동작하는 방법을 알려줌 클래스 메쏘드의 구현부 클래스의 저자에게만 중요 -> 사용자에게는 불필요! -> 분리!

인라인 구현 클래스 메쏘드의 인라인 구현 inline int Cat::Meow() { … } 함수 정의를 클래스 선언에 포함 -> 자동 인라인 class Cat { int GetWeight() { return itsWeight; } void SetWeight(int aW); };

버그 사냥 class TV { public: void SetStation(int Station); int GetSttion() const; private: int intsStation; }; main() { TV myTV; myTv.itsStation = 9; TV.SetStation(10); TV myotherTv(2); }