(C++) 8.1 객체 지향 프로그래밍과 클래스

이준우·2021년 11월 22일
0

이제 드디어 C++의 객체 지향에 대해 알아보려고 한다. 하나의 언어를 제대로 다룰 줄 안다면 다른 언어는 쉽게 이해할 수 있다. C를 제외한 거의 대부분의 프로그래밍 언어들이 객체지향으로 이루어져 있기 때문에, C++만 제대로 이해한다면 Python이나 다른 프로그래밍 언어도 쉽고 빠르게 이해하고 나아갈 수 있을 것이다.

각설하고 이제 제대로 시작해보자!


일반적으로 우리가 친구의 정보를 알고 싶을 때, 이러한 프로그램을 만들 수 있다. 하지만 많은 친구들을 저장할 경우에는 배열 혹은 동적할당 배열으로 하는 것이 유리하기 때문에, 이에 대한 것도 알아보자.

따라서 vector를 사용하여 구현해보자.(동적할당)
이처럼 구현할 수가 있다. 근데 좀 보기 껄끄럽다. 이런 정보들을 한곳에 모아 필요할 때만 불러와서 사용하면 코드가 더 깔끔하지 않을까? 이를 struct를 사용하여 구현해보자.

점점 코드가 길어지는 것 같지만 사용하는데는 매우 편하다. 또한 uniform initialization에 대한 방법을 잘 안다면 더욱이 쉽게 이해할 수 있을 것이다.

근데 이 방법도 썩 좋아보이진 않다. 만약 여러명을 출력하고 싶으면 함수의 매개변수에 일일이 다 입력을 해줘야하는 번거로움이 생긴다. 이를 좀 간편히 구현해보자.

이처럼 구조체 안에 함수를 넣어 구현할 수 있다. 저런식으로 DATA와 function 묶여 있는 것을 보고 Object라 부른다.

여기선 지금 struct로 구현을 하였지만, 이를 class로 바꿀 수 있다.
일반적으로 struct를 사용할 경우에는, Data를 묶는 데에만 사용하고 function을 묶는 데에는 class를 사용한다.

중요!!!!

class : function을 모아둘 때 사용한다.
struct : DATA를 모아둘 때 사용한다. (즉, 변수와 자료형을 모아둘 경우)

만약 우리가 class 안의 m_name을 name으로 바꾸고 싶다면 어떻게 해야할까? 하나를 바꾸면 나머지를 다 바꿔야 하는 상황이 생긴다. 그럴 땐, Rename을 사용하여 바꾸도록 하자!
해당 변수명에 오른쪽 클릭을 한 후, Rename을 클릭한다.
여기서 m_name을 name으로 바꾼 후에 Preview를 눌러준다.그럼 어디어디를 바꾸는지에 대한 내용들이 쫙 나오는데, 확인을 한 후 Apply를 눌러준다. 바뀐 것을 확인한다.

profile
꿈꾸는 CV

0개의 댓글