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++] 메소드(Method)에 대한 기본 정의와 사용법 & const 본문

IT - Language/C++

[C++] 메소드(Method)에 대한 기본 정의와 사용법 & const

kingllzn 2018. 6. 19. 10:31
반응형
SMALL

 

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

내용 발췌하였습니다)

 

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

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

 

 

이번에는 객체에서 정말

많이사용되고 실무나 학업의

프로젝트 등에서도 정말 많이

활용되어지고 있는 메소드(Method)에

대해서 포스팅 해보겠습니다

 

첫 번째로 메소드 (Method)란?

 

메소드의 사전적인 의미는

방법과 수단을 나타냅니다
C++에서는 클래스의 멤버 함수를

메소드(Method)라고 한다
(멤버 함수 == 메소드)

 

 

이 개념을 쉽게 표현 하고자 한다면

 

예를 들어 스마트폰이라는 객체는
메신저, 통화, 게임, 인터넷이라는

기능이 있습니다 그것을 표현하면


                                         스마트폰 갤럭시노트8;
                                         갤럭시노트8.메신저();
                                         갤럭시노트8.통화();
                                         갤럭시노트8.게임();
 
                                        갤럭시노트8.인터넷();


이라고 말하고 정의 할 수 있습니다

 

메소드의 문법은 아래와 같습니다


static 반환 자료형 클래스이름::함수이름(매개변수) const;


 - staticconst 예약어는 생략이 가능하다                        
  (static - 정적 멤버 함수, const - 상수형 or 상수화된 멤버 함수)

이렇게 공부 했음에도 불구하고

저는 메소드와 함수, 멤버 함수 등의

경계선이 모호하여 헷갈리고

이해가 잘 가지 않았었습니다

 

그리하여 검색으로 찾아보고

책을 보고 비교해 본 결과

다음과 같이 정의를 내렸습니다

 

객체는 현실세계의 물체나 형태가 없는 것을

컴퓨터의 가상 세계 내에서 추상화 한 것입니다

ex) 스마트폰

 

메소드는 그 객체가 할 수 있는 행동이나

기능, 일 등을 표현한 것이라 생각합니다

ex) 전화한다, 게임한다, 인터넷 검색한다 등등

 

그리고 멤버 함수와 함수는 메소드와

90%이상 일치하는 같은 기능 / 다른 이름

이라고 저는 생각했습니다

 

속성은 앞서 말한 객체의 상태를

표현한 것이라 생각합니다

ex) 스마트폰의 스펙, 색상, 외형, 등등

 

 

저는 이렇게 정의하고 나니

여태 공부했던 내용들이 좀 더

머릿속에 각인이 잘 되는것 같습니다

 

 

한 가지 공부하다가 알게된

const에 대한 설명을 덧붙이겠습니다

const는 대부분 함수의 뒷 부분에

추가적으로 붙여 사용합니다

 

const가 붙는 경우 아래 코드처럼

const가 붙으면 함수가 읽기 전용 함수로

바뀝니다 this 포인터가 기리키고 있는
 주소를 변경할 수 없을 뿐더러,

this 포인터가 다른 객체의
 주소도 가리킬 수 없음을 의미합니다

 

 

 class
 public:
  void ShowData(int Number) const
 {
  this -> Number = a.Number;
 }

 

즉, const가 붙는 순간

옴짝달싹 못하게 Number 변수라는

아이의 값의 주소를 읽어오는 역할밖에

할 수가 없어지는 것입니다

 

 

 

메소드에 대한 더 자세한 설명은

이후에 게시할 포스팅들에서

더 자세하게 다뤄보도록 하겠습니다


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

있으시다면

댓글에 달아주세요

 

아는것이면 친절하게 쉽게

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

친절하게 쉽게 포스팅해서

설명해드리겠습니다

반응형
LIST
Comments