본문 바로가기

프로그래밍 연습실

C++알고리즘(2) - 클래스 맛보기

C++알고리즘(2) - 클래스 맛보기

안녕하세요~ 오늘은 C++같은 객체지향언어에서 사용할 수 있고 자주 사용되는 클래스 관련된 간단한 예제를 살펴보려해요!
저는 C를 조금 선행하고 C++로 넘어왔는데 넘어와서 가장 어렵게 다가온 것이 클래스활용이였어요 ㅠㅠ 물론
지금도 클래스를 이용하는게 쉽지는 않아요.  바로 클래스가 무엇인지 살펴보도록 할까요?

1. 클래스 구성요소 살펴보기


클래스는 C언어에서 배웠던 구조체와 비슷합니다.

사용자 정의 데이터 유형이며 해당 클래스의 객체를 생성할 수 있게 해줍니다!

예를 들어 과자 라는 데이터 유형을 만드려 하면 과자에는 양X링,포X토칩,꼬x콘 등이 포함될 수 있겟죠?

우리는 과자라는 클래스를 만들어  양X링,포X토칩,꼬x콘 등의 변수,함수등을 정의해 생성한 과자객체를 통해

접근하고 사용할 수 있게 돼요!


오늘은 클래스의 구성요소를 살펴보기 위해 클래스를 생성하고 그 안에 정수변수들을 선언하고

정수변수들을 더해주는 함수까지 만들어서 해당 객체를 이용해 출력해보려고해요.

일단 클래스의 형태를 볼까요?



자 무슨일이 생긴걸까요?

예를 들어 성명하자면 Add라는 붕어빵 틀이 생성된거에요. ( private는 클래스 내부에서만 접근

가능한 영역이에요. 붕어빵재료는 붕어빵 틀안에서 놀아야겠죠?)

그리고 그안에 만들 붕어빵 재료인 a와b를 만들었죠.

이제 붕어빵 재료들로 붕어빵을 만들어야겠죠?

(붕어빵은 public이라는 클래스 외부에서도 접근 가능한 공간에 만들거에요. 붕어빵이 만들어 졌으면

외부에 팔거나 줘야겠죠?)



자 새로 생긴것들이 많이 있네요. 일단 9~12줄을 보시면 생성자라고 돼있는데요.

생성자는 클래스Add의 객체가 생성될 때 가장 먼저 실행되는 친구에요. 위 코드에서는 

a를 12,b를 8로 초기화 해주었으니 22번줄에 Add클래스의 a객체가 생성될 때 

객체 a는 12,8 값을 가지고 있겟네요!

14~16줄에는 멤버함수를 만들었어요. 단순히 a값 과 b값을 더해 출력하는 함수에요.

22줄엔 이제 클래스Add의 a라는 객체를 생성했구요(생성자가 실행되니 a= 12,b=8 의 값을 가지고 있겠네요).

23줄엔  a객체에 AddAB함수가 들어갑니다. 바로 출력해볼까요?


 

12+8 = 20 정확하게 출력되네요! 

이번엔 조금 다른 방식으로 써볼게요.



자 위와 차이점을 느끼셨나요?

맞습니다. 생성자를 작성할 때 값을 주지 않고 객체를 생성할 때 값을 줬네요!

아까 전의 생성자를 기본생성자 라고 하고 지금의 생성자를 매개변수 생성자라고 한답니다.

매개변수 생성자 내부의 (this->)는 자기자신을 말하는 것입니다. 즉, 들어오는 매개변수가 나다! 라고 말해주는 것이에요. 

자 이제 23~24줄을 보시면 Add클래스의 a2객체를 생성했고, a2의 매개변수를 4와6으로 받았습니다. 

그리고 a2의 AddAB함수를 호출했어요. 그럼 결과는 4+6인 10이 나와야겠죠?



10이 잘 나오는 모습이네요! 

클래스는 형태도 c에서 보던 것 들과는 많이 다르고 아직은 많이 익숙하지가  않네요 ㅠㅠ

클래스를 자유자재로 쓸수있게됐으면 좋겠네요 빨리!

다음엔 또 다른 문제로 찾아뵐게요 감사합니다~