ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++] 클래스 생성
    공부/C++ 2022. 7. 13. 22:19

    객체(object) : 물리적이나 추상적인 것에 대해 속성(attribute)과 메소드(method)로 모델링 한 것

    속성은 객체의 상태를 나타내는 데이터이고, 메소드는 객체가 정해진 동작을 하는 함수이다.

     

    메시지 : 객체들간의 상호작용에서 한 객체가 다른 객체로 필요한 작업이 이루어지도록 요구하는 것

    메시지는 함수를 호출하는 것을 의미한다.

    https://soongjamm.tistory.com/133

     

    객체지향에서 메세지와 메소드는 다르다.

    객체지향에서 메세지와 메소드는 다르다. 객체지향에 입문해서 자료를 보다보면 메세지 라는 말을 많이 보게 된다. 예를 들어 객체의 상태를 직접 변경하지 않고, 어떤 작업을 요청하는 메세지

    soongjamm.tistory.com

     

    클래스 : 객체를 만들어내기위한 설계도, 클래스에는 객체가 포함할 속성과 메소드들의 정의되어 있어, 클래스를 사용하여 동일한 속성 및 메소드를 가지는 객체들을 생성한다. 클래스 자체에는 데이터가 저장되지않지만, 클래스에 의해 생성된 객체는 각각의 고유한 값을 가진다. 그래서 객체를 클래스의 인스턴스(사례)라고 부른다.

     

    캡슐화(encapsulation) : 객체의 속성과 메소드들을 하나로 묶는 것, 객체의 사용과 설계를 분리하는 것이다.

    객체를 사용할 때, 어떤 메시지를 보내 동작하게 할 수 있지만, 객체 내부 상태의 표현이나 구현에 대해서는 알 필요가 없다. 객체 내부에 대해서는 감추고(정보은닉), 외부로는 공개된 메소드를 통해 인터페이스를 제공하여 사용할 수 있게 하는 것을 의미한다.

     


     

    클래스는 C++에서 객체지향 개념을 구현하기 위한 도구이다.

    C++에서는 클래스안의 속성들을 데이터 멤버라고 부르고, 메소드를 멤버함수라고 부른다.

     

     

    - 클래스의 선언

    class ClassName {
    	가시성_지시어_1:
        	데이터 멤버 또는 멤버함수 리스트;
    	가시성_지시어_2:
        	데이터 멤버 또는 멤버함수 리스트;
    	......
    };

     

     

    - 가시성 지시어

    가시성 지시어(visibility specifier) 공개되는 범위
    private 소속 클래스의 멤버함수, 친구 클래스의 멤버함수 및 친구함수
    public 전 범위

     

     

    - 생성자(constructor)

    객체가 생성될 때 수행할 작업을 정의하는 특수한 멤버함수이다.

    객체를 정의할때 자동적으로 호출된다.

    class ClassName {
    	public:
        	ClassName(fParameterList) {	//생성자
            	......
            }
    	......
    };

    생성자는 멤버함수와 유사하지만, 아래와 같아야한다.

    1. 생성자는 클래스의 이름을 사용해 선언해야한다.

    2. 생성자는 반환자료형이 없다. (따로 void라고 표기도 하지않는다.)

    3. public으로 선언한 생성자만 클래스 외부에서 객체를 생성하는데 사용할 수 있다.

     

     

    - 소멸자(destructor)

    class ClassName {
    	public:
        	~ClassName(fParameterList) {	//소멸자
            	......
            }
    	......
    };

    객체가 소멸될 때 자동으로 실행되는 함수, 소멸자도 아래와 같은 고유한 사항이 있다.

    1, 소멸자의 클래스는 이름에 '~'를 붙여 선언한다.

    2. 소멸자는 반환자료형이 없다. (위와동일)

    3. 매개변수를 포함할 수 없다.

    4. 소멸자는 생성자와 다르게 다중정의 할 수 없으며, 클래스에 하나만 정의한다.

    5. public으로 선언하는 것이 일반적이다.

    6. 상속을 통해 파생클래스를 정의하는 경우 virtual을 지정해 가상함수가 되도록 하는 것이 좋다.

     

    '공부 > C++' 카테고리의 다른 글

    __restrict  (0) 2023.07.14
    [C++] 동적 할당/new, delete  (0) 2022.07.07
    [C++] cout 조정자(Manipulator)  (0) 2022.07.06
Designed by Tistory.