1 minute read

C++ 정리 3(클래스와 객체(1))

c++ 클래스

이번에는 c++의 존재 이유이자 꽃이라고 할 수 있는 클래스에 대해서 정리해 보겠습니다. 클래스는 객체 지향 프로그래밍에 있어서 핵심인 부분으로 반드시 잘 알고 넘어가야 합니다.

클래스는 먼저 멤버 변수와 멤버 함수로 구성 됩니다.

클래스를 한번 만들어 보겠습니다.

​ class Circle {

​ public:

​ int radius;

​ double getArea();

​ };

이때 radius를 멤버 변수라고 하고 getArea()를 멤버 함수라고 합니다.

클래스는 class 키워드로 선언하고 반드시 마지막에 ;를 써줍니다. 처음에 ;를 자주 빼먹어서 실수했던 기억이 있습니다.

그러면 public: 은 무엇을 뜻하는 것일까요??

이것은 접근 지정자를 뜻합니다. 접근 지정자에는 3가지 종류가 있습니다.

​ public: 클래스의 외부로부터의 접근을 허용합니다.

​ private: 클래스의 외부에서 접근 할 수 없습니다.

​ protected: 상속받는 자식 클래스에서만 접근할 수 있습니다.

이제 클래스 선언을 했으니 클래스 구현을 해보겠습니다. 클래스의 재사용을 위해 클래스 선언과 클래스 구현을 분리하여 작성합니다.

​ double Circle :: getArea() {

return 3.14 * radius * radius;

​ }

클래스의 멤버함수인 getArea()를 구현하였습니다.

이때 중요한 것은 Circle:: 을 작성한 것처럼 클래스이름을 작성하여서 범위를 지정해주어야합니다. 이것도 실수가 자주 생기는 부분입니다.


객체(object) 생성

​ Circle coin;

이렇게 우리가 만든 클래스의 이름인 Circle 을 써주고 coin이라는 이름을 붙여서 우리의 객체를 생성해줍니다.

그러면 이렇게 생성된 객체는 어떻게 활용할 수 있나요?

객체 활용

​ coin.radius = 1;

​ double area = coin.getArea();

객체 이름 뒤에 점을 찍어서 우리는 클래스의 멤버변수와 멤버 함수에 접근할 수 있습니다.


생성자

생성자란 객체가 생성될 때 자동으로 실행되는 멤버 함수를 말합니다. 클래스는 생성자를 이용해서 객체를 초기화 합니다. 여기서 초기화는 삭제하는 초기화가 아닌 initialize의 뜻인 초기화 입니다. 저는 공부할때 왜 초기화를 시키지? 생각했는데 단순한 번역 문제 였습니다. 다시 한번 용어를 정리하시는 것을 추천드립니다.

생성자는 다음과 같은 특징이 있습니다.

  1. 생성자의 목적은 객체가 생성될 때 필요한 초기 작업을 위함이다.
  2. 생성자 함수는 오직 한 번만 실행된다.
  3. 생성자 함수의 이름은 클래스 이름과 동일하게 작성되어야 한다.
  4. 생성자 함수의 원형에 리턴 타입을 선언하지 않는다.
  5. 생성자는 중복 가능하다.

일단 생성자의 정리는 여기까지 정리하고 다음 시간에 생성자의 실행과 사용방법에 대해서 더욱 자세히 정리 하겠습니다.

Updated: