SlideShare une entreprise Scribd logo
1  sur  34
3. C++ 프로그래밍
박민근
객체

캐릭터
머리모양, 키, 피부색
공격력, 방어력

속성
행동

레벨
아이템

달리기, 서있기, 앉
기
공격하기, 방어하기
맞기, 죽기
객체

객체

속성

멤버 변수

행동

멤버 함수
(메소드)
클래스

객체 (인스턴스)

건담 설계도
(생성된) 건담
크기와 색상이 달라도 다 같은거…
결국은 다 같은 계열…
클래스의 상속 구조

부모 클래스

자식 클래스
상속 관계
(is a 관계)
구체화

로보트

일반화
상속 관계
• 부모의 특성 (속성, 행동)을 그대로 상속 받아, 같은 특성을 가질 수 있다.
• 부모 클래스를 좀 더 구체화 시켜서 설계 한다는 개념

• 각 클래스끼리의 공통된 특성을 부모 클래스에 넣어서 각각의 파생 클래스
에서 재사용이 가능하다
• 부모 = 기본 클래스, 자식 = 파생 클래스
• 부모 <->자식 == 일반화 <-> 구체화

• 자식 클래스는 부모 클래스의 흉내를 낼 수 있다. (다형성)
떄린건가? 맞은건가?
객체는 내가 중심이다
다른 객체에
대해서는
신경쓰지
않아도
된다.
클래스 구조
객체의 생성
생성자와 소멸자
• 생성자 객체가 처음 생성 될 때, 자동으로 호출 되는 함수
• 변수의 초기화 작업을 넣는다.
• 최초 실행되어야 할 행동들을 넣는다
• 필요한 내부 객체들을 생성한다.

• 소멸자 객체가 파괴될 때, 자동으로 호출 되는 함수
• 할당된 메모리의 해제 작업

• 할당된 내부 객체들의 파괴 작업
• 기타 마지막에 실행되어야 할 행동들을 넣는다.
생성자와 소멸자 – 상속 관계
• 자식 클래스가 생성될때 부모의 생성자 함수는 자동 호출 된다.
• 자식 클래스가 소멸될때 부모의 소멸자 함수도 자동 호출 된다.
Ship 클래스 – 멤버 변수, 멤버 함수
접근 제한

• 은닉성
•

•

노출하지 않아도 되는
정보는 보여주거나 제공할
필요가 없다.
외부에서 함부로 변경 못함
접근 권한 설정하기(2)
멤버의 접근 권한 설정하기
[21-23]

접근 권한 키워드에 대한 요약 (뒤에서 더욱 자세히 분류)
public : 외부에서의 접근을 허용한다.
protected, private : 외부에서 접근할 수 없다.
클래스 내부, 외부, 자식 클래스 관계
Public – 모두에게 공개 한다
• 아무나 사용할 수 있다.
• 함수 – 객체를 사용하는 누구든 호출 가능
• 변수 – 객체를 사용하는 누구든 값의 변경 및 사용 가능
Protected – 우리 집안것! 내 자식들만 사용 가능
• 자신과 자식 클래스만 사용이 가능하다.
• 함수 – 나와 내 자식 클래스 내부에서만 호출 가능

• 변수 – 나와 내 자식 자식 클래스 내부에서면 변경 및 사용 가능
Private – 이건 나만의 것! 내 자식도 못씀! 내거야!!
• 자신만 사용이 가능하다
• 함수, 변수 전부 클래스 자기 자신만 사용 가능
접근 권한 설정하기(1)
멤버의 접근 권한을 설정하는 예
class AccessControl
{
public:
char publicData;
void publicFunc() {};
protected:
int protectedData;
void protectedFunc() {};
private:
float privateData;
void privateFunc() {};
};
int main()
{
// 객체를 생성하고, 각 멤버에 접근해보자
AccessControl ac;
ac.publicData = 'A';
ac.publicFunc();
ac.protectedData = 100;
ac.protectedFunc();
ac.privateData = 4.5f;
ac.privateFunc();

//
//
//
//
//
//

성공
성공
실패
실패
실패
실패
enum 열거형
enum 열거형
•
•
•
•
•

타입 종류같은 열거 해야 하는 값들을 저장하는 데이터 타입
내부적으로는 int 형과 같은 4바이트 변수다.
변수안에 들어갈 값들을 제한하여 정한다고 생각하면 된다.
정의된 값들은 디폴트로 0부터 순차적으로 증가한다.
0이 아닌 다른 특정한 값(int형)으로 정의할 수도 있다.
예) 히트 결과
• 함수 반환 값으로 구별이 필요
• Int형으로 반환 => 0 – 미스, 1 – 히트, 2 – 파괴

• enum 형으로 선언
• MISS, HIT, DESTROY
• 반환값으로 enum 형을 반환
구조체

• 여러가지 다른 타입의 데이터의 묶음
• 관련된 다양한 데이터를 하나의 묶음 데이터로 처리할 수 있다.
• 예) 배의 위치 : x좌표, y좌표
C 문자열 (char[])

문자(char)의 배열
szTest의 값 = 배열 시작 위치(포인터)

I

L

o

v

e

Y

o

u

~

P

r

o

f 0

길이가 17개인 고정 문자 배열
Char[17]
std::string
• 가변 문자열 템플릿 클래스
• 문자열의 길이에 상관 없이 문자열을 담을 수 있다 .
• 내부적으로는 문자의 가변 배열로 구성 되어 있다.
• C 형태의 문자열(문자배열 char[])로 변환이 필요한

경우에는 c_str() 멤버 함수를 사용 한다.
sprintf_s()
• sprintf_s(결과를 담을 문자 배열, 포맷, argument,..)
• printf에서 출력 결과를, 입력 받은 배열에 담는다고
생각하면 된다.
• 문자열의 변경이나 복사, 추가등에 활용할 수 있다.
• 임의의 문자열 조합등을 문자열 배열에 담는다고

할 수 있다.
문자열 변경

문자열 복사
문자열 추가

Contenu connexe

Similaire à [C++ lab] 3. c++ 프로그래밍

객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본용호 최
 
[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)용호 최
 
The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표재정 이
 
PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지Yoonwhan Lee
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7Yeonah Ki
 
Ds4 artist week_10
Ds4 artist week_10Ds4 artist week_10
Ds4 artist week_10SeungBum Kim
 
자바스터디 2
자바스터디 2자바스터디 2
자바스터디 2jangpd007
 
[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3MinGeun Park
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1준영 박
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)Seung-June Lee
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)MIN SEOK KOO
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java유리 하
 
5강 코드효율성
5강 코드효율성5강 코드효율성
5강 코드효율성흥래 김
 

Similaire à [C++ lab] 3. c++ 프로그래밍 (20)

객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본
 
Java_05 class
Java_05 classJava_05 class
Java_05 class
 
Java class
Java classJava class
Java class
 
[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)
 
Hello, C# : OOP
Hello, C# : OOPHello, C# : OOP
Hello, C# : OOP
 
Java_06 상속
Java_06 상속Java_06 상속
Java_06 상속
 
The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표The c++ programming language 10장 클래스 발표
The c++ programming language 10장 클래스 발표
 
Python class
Python classPython class
Python class
 
PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지PHP에서 객체와 데이터 연결 유지
PHP에서 객체와 데이터 연결 유지
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7
 
Ds4 artist week_10
Ds4 artist week_10Ds4 artist week_10
Ds4 artist week_10
 
자바스터디 2
자바스터디 2자바스터디 2
자바스터디 2
 
[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3[Pl in c++] 6. battle ship 3
[Pl in c++] 6. battle ship 3
 
Java script
Java scriptJava script
Java script
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
 
Java(1/4)
Java(1/4)Java(1/4)
Java(1/4)
 
5강 코드효율성
5강 코드효율성5강 코드효율성
5강 코드효율성
 

Plus de MinGeun Park

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdfMinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석MinGeun Park
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이MinGeun Park
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐MinGeun Park
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBRMinGeun Park
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OTMinGeun Park
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.MinGeun Park
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correctionMinGeun Park
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & TrickMinGeun Park
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)MinGeun Park
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법MinGeun Park
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 MinGeun Park
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현MinGeun Park
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기MinGeun Park
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기MinGeun Park
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개MinGeun Park
 

Plus de MinGeun Park (20)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 

[C++ lab] 3. c++ 프로그래밍

  • 2.
  • 3.
  • 4.
  • 5. 객체 캐릭터 머리모양, 키, 피부색 공격력, 방어력 속성 행동 레벨 아이템 달리기, 서있기, 앉 기 공격하기, 방어하기 맞기, 죽기
  • 8. 크기와 색상이 달라도 다 같은거…
  • 10. 클래스의 상속 구조 부모 클래스 자식 클래스
  • 11. 상속 관계 (is a 관계) 구체화 로보트 일반화
  • 12. 상속 관계 • 부모의 특성 (속성, 행동)을 그대로 상속 받아, 같은 특성을 가질 수 있다. • 부모 클래스를 좀 더 구체화 시켜서 설계 한다는 개념 • 각 클래스끼리의 공통된 특성을 부모 클래스에 넣어서 각각의 파생 클래스 에서 재사용이 가능하다 • 부모 = 기본 클래스, 자식 = 파생 클래스 • 부모 <->자식 == 일반화 <-> 구체화 • 자식 클래스는 부모 클래스의 흉내를 낼 수 있다. (다형성)
  • 14. 객체는 내가 중심이다 다른 객체에 대해서는 신경쓰지 않아도 된다.
  • 17. 생성자와 소멸자 • 생성자 객체가 처음 생성 될 때, 자동으로 호출 되는 함수 • 변수의 초기화 작업을 넣는다. • 최초 실행되어야 할 행동들을 넣는다 • 필요한 내부 객체들을 생성한다. • 소멸자 객체가 파괴될 때, 자동으로 호출 되는 함수 • 할당된 메모리의 해제 작업 • 할당된 내부 객체들의 파괴 작업 • 기타 마지막에 실행되어야 할 행동들을 넣는다.
  • 18. 생성자와 소멸자 – 상속 관계 • 자식 클래스가 생성될때 부모의 생성자 함수는 자동 호출 된다. • 자식 클래스가 소멸될때 부모의 소멸자 함수도 자동 호출 된다.
  • 19.
  • 20. Ship 클래스 – 멤버 변수, 멤버 함수
  • 21. 접근 제한 • 은닉성 • • 노출하지 않아도 되는 정보는 보여주거나 제공할 필요가 없다. 외부에서 함부로 변경 못함
  • 22. 접근 권한 설정하기(2) 멤버의 접근 권한 설정하기 [21-23] 접근 권한 키워드에 대한 요약 (뒤에서 더욱 자세히 분류) public : 외부에서의 접근을 허용한다. protected, private : 외부에서 접근할 수 없다.
  • 23. 클래스 내부, 외부, 자식 클래스 관계 Public – 모두에게 공개 한다 • 아무나 사용할 수 있다. • 함수 – 객체를 사용하는 누구든 호출 가능 • 변수 – 객체를 사용하는 누구든 값의 변경 및 사용 가능 Protected – 우리 집안것! 내 자식들만 사용 가능 • 자신과 자식 클래스만 사용이 가능하다. • 함수 – 나와 내 자식 클래스 내부에서만 호출 가능 • 변수 – 나와 내 자식 자식 클래스 내부에서면 변경 및 사용 가능 Private – 이건 나만의 것! 내 자식도 못씀! 내거야!! • 자신만 사용이 가능하다 • 함수, 변수 전부 클래스 자기 자신만 사용 가능
  • 24. 접근 권한 설정하기(1) 멤버의 접근 권한을 설정하는 예 class AccessControl { public: char publicData; void publicFunc() {}; protected: int protectedData; void protectedFunc() {}; private: float privateData; void privateFunc() {}; }; int main() { // 객체를 생성하고, 각 멤버에 접근해보자 AccessControl ac; ac.publicData = 'A'; ac.publicFunc(); ac.protectedData = 100; ac.protectedFunc(); ac.privateData = 4.5f; ac.privateFunc(); // // // // // // 성공 성공 실패 실패 실패 실패
  • 26. enum 열거형 • • • • • 타입 종류같은 열거 해야 하는 값들을 저장하는 데이터 타입 내부적으로는 int 형과 같은 4바이트 변수다. 변수안에 들어갈 값들을 제한하여 정한다고 생각하면 된다. 정의된 값들은 디폴트로 0부터 순차적으로 증가한다. 0이 아닌 다른 특정한 값(int형)으로 정의할 수도 있다. 예) 히트 결과 • 함수 반환 값으로 구별이 필요 • Int형으로 반환 => 0 – 미스, 1 – 히트, 2 – 파괴 • enum 형으로 선언 • MISS, HIT, DESTROY • 반환값으로 enum 형을 반환
  • 27.
  • 28. 구조체 • 여러가지 다른 타입의 데이터의 묶음 • 관련된 다양한 데이터를 하나의 묶음 데이터로 처리할 수 있다. • 예) 배의 위치 : x좌표, y좌표
  • 29.
  • 30. C 문자열 (char[]) 문자(char)의 배열 szTest의 값 = 배열 시작 위치(포인터) I L o v e Y o u ~ P r o f 0 길이가 17개인 고정 문자 배열 Char[17]
  • 31. std::string • 가변 문자열 템플릿 클래스 • 문자열의 길이에 상관 없이 문자열을 담을 수 있다 . • 내부적으로는 문자의 가변 배열로 구성 되어 있다. • C 형태의 문자열(문자배열 char[])로 변환이 필요한 경우에는 c_str() 멤버 함수를 사용 한다.
  • 32. sprintf_s() • sprintf_s(결과를 담을 문자 배열, 포맷, argument,..) • printf에서 출력 결과를, 입력 받은 배열에 담는다고 생각하면 된다. • 문자열의 변경이나 복사, 추가등에 활용할 수 있다. • 임의의 문자열 조합등을 문자열 배열에 담는다고 할 수 있다.