Today
Total
Recent Posts
Recent Comments
Archives
05-19 10:54
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
반응형
관리 메뉴

UD_park's IT story

[C++] 객체 지향과 Class의 개념 및 사용법 본문

IT - Language/C++

[C++] 객체 지향과 Class의 개념 및 사용법

kingllzn 2018. 6. 16. 08:00
반응형
SMALL

(학습 서적 이것이 C++이다에서

내용 발췌하였습니다)

 

[보기용 예제 소스 코드에서 오류 발생시에

댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]

 

 

이번에는 객체 지향에 대하여

포스팅해보겠습니다

 

흔히 많이들 공부하시는

JAVA에서 객체 지향을 많이

접하게 됩니다

 

C++의 객체 지향 또한

JAVA와 크게 차이가 나지 않습니다

 

C++의 객체의 정의는

다음과 같습니다

 

객체란 변수들과 그와 관련된

메소드들이 모여서 이룬 하나의 꾸러미

정의는 참고정도만 해주시고

메소드에 대해 헷갈리시는 분들은

메소드를 설명한 다음포스팅을

참고해 주시기 바랍니다

 

그리고 C++의 클래스에

대한 정의는 다음과 같습니다

 

클래스란 C의 구조체에서 확정된

변수, 객체, 함수를 포함한 하나의 틀

이렇게 어렵게 이야기하는걸

싫어하는 저는 제 방식대로

말을 바꿔 보겠습니다

 

그 동안 많이 써왔던 C의 구조체와

그 구조체 안과 밖에서 썼던 매개 변수들

그리고 구조체 안의 변수와 함수들

 

이 모든 걸 싸그리 하나의 틀안에

쑤셔 넣을 수있는 가방같은 존재가 바로

C++의 클래스다 라고

대충 이해하시면 될것 같습니다

 

다음은 C++ 클래스의 문법을

알아보도록 하겠습니다

 

class 클래스이름

{

접근제어지시자:

멤버변수선언;

멤버함수 선언및정의;

};

그럼 위의 문법에서 나온

용어들을 풀이해보겠습니다

접근제어 지시자란

public, private, protected 등입니다

이 3가지가 주로 쓰이니 간단히

설명하고 넘어가겠습니다

 

public : 멤버에 관한 모든 외부 접근이 허용

 

protected : 멤버에 관한 모든 외부 접근이 차단

(단, 상속관계에 있는 자식 클래스에서의 접근은 허용)

 

private : 외부 접근 뿐만 아니라 자식 클래스

접근 또한 차단

(클래스 선언할 때 별도의 접근제어지시자

명령이 없으면 private가 기본값으로 적용됨)

 

여기서 멤버란 같은 클래스라는

의미로 예를들어

 

class Test

{

public:

멤버변수 A;

멤버변수 B;

}

 

이렇게 있다면 A, B 두 변수는

같은 Test라는 이름의 클래스

안에서 사용되는 변수라는 말이며

A와 B는 Test의 멤버 변수이다

라고도 말할 수 있습니다

 

그럼 이제 C++의 Class를

사용한 예제를 보며 설명하겠습니다

 

제일 만만한 구구단을 예제 문제로

삼았습니다
보시다시피 main 함수에서

작동중인 코드가 고작 3줄입니다

대부분 Test라는 클래스에서

작동중입니다

 

설명을 드리자면 Test라는 이름의 클래스와

그 안에서 어디서든 쓸 수있는 Number라는

멤버 변수, 그리고 출력시킬 구구단의 단을

입력받는 멤버 함수 Input과

그 결과값을 계산하여 출력하는 Print입니다

 

소스 코드에서 보이듯이

클래스 내부이지만 함수들 밖에

Number라는 변수가 선언되었음에도

멤버 함수인 Input과 Print 둘 다

Number라는 변수를 자유롭게

사용중입니다

 

결과 화면입니다

 

현재 Test 클래스의

모든 변수와 함수들이 public으로

선언 되어있는것을

 

아까 말씀드린 private를

적용시켜보았습니다

 

그랬더니 위와 같이

Error가 발생합니다

설명을 보니 private 멤버에

접근할 수 없다라고 나옵니다

앞서말한 바와 같이

private는 모든 외부의 접근을

차단하기 때문입니다

 

private와 protected에 대한

설명은 이후 상속과 캡슐화에 대한

포스팅에서 더 깊이있게

설명하도록 하겠습니다

 

혹시 다른것에 대해 궁금하신게

있으시다면

댓글에 달아주세요

 

아는것이면 친절하게 쉽게

모르는것이면 또 제가 알아내서

친절하게 쉽게 포스팅해서

설명해드리겠습니다

 

 

반응형
LIST
Comments