UD_park's IT story
[C++] 메소드(Method)에 대한 기본 정의와 사용법 & const 본문
(학습 서적 이것이 C++이다에서
내용 발췌하였습니다)
[보기용 예제 소스 코드에서 오류 발생시에
댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]
이번에는 객체에서 정말
많이사용되고 실무나 학업의
프로젝트 등에서도 정말 많이
활용되어지고 있는 메소드(Method)에
대해서 포스팅 해보겠습니다
첫 번째로 메소드 (Method)란?
메소드의 사전적인 의미는
방법과 수단을 나타냅니다
C++에서는 클래스의 멤버 함수를
메소드(Method)라고 한다
(멤버 함수 == 메소드)
이 개념을 쉽게 표현 하고자 한다면
예를 들어 스마트폰이라는 객체는
메신저, 통화, 게임, 인터넷이라는
기능이 있습니다 그것을 표현하면
스마트폰 갤럭시노트8;
갤럭시노트8.메신저();
갤럭시노트8.통화();
갤럭시노트8.게임();
갤럭시노트8.인터넷();
이라고 말하고 정의 할 수 있습니다
메소드의 문법은 아래와 같습니다
static 반환 자료형 클래스이름::함수이름(매개변수) const;
- static과 const 예약어는 생략이 가능하다
(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 변수라는
아이의 값의 주소를 읽어오는 역할밖에
할 수가 없어지는 것입니다
메소드에 대한 더 자세한 설명은
이후에 게시할 포스팅들에서
더 자세하게 다뤄보도록 하겠습니다
혹시 다른것에 대해 궁금하신게
있으시다면
댓글에 달아주세요
아는것이면 친절하게 쉽게
모르는것이면 또 제가 알아내서
친절하게 쉽게 포스팅해서
설명해드리겠습니다
'IT - Language > C++' 카테고리의 다른 글
[C++] 복사 생성자(Copy Constructor) (3) | 2018.06.22 |
---|---|
[C++] This Pointer에 대한 기본 개념과 사용법 (0) | 2018.06.19 |
[C++] 생성자와 소멸자, 디폴트/변환 생성자 (0) | 2018.06.16 |
[C++] 객체 지향과 Class의 개념 및 사용법 (0) | 2018.06.16 |
[C++] 오버로딩(Overloading) 함수의 다중정의 (0) | 2018.06.15 |