728x90

황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다!

https://search.shopping.naver.com/book/catalog/32436115747

 

C++ Programming : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

객체란 우리 주변에 존재하는 모든 것이며 아래와 같은 특징이 있다.

객체는 캡슐화된다.

  • 캡슐화는 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것으로, 객체의 가장 본질적인 특징이다.
  • 다시 말해 객체는 캡슐화를 통해 외부의 접근을 통제하여 자신의 내부 요소들을 보호한다.

 

객체의 일부 요소는 공개된다.

  • 구성 객체들이 상호 통신을 하면서 시스템이 구동된다.
  • 그러므로 객체를 완벽히 캡슐화하여 모든 요소를 보이지 않게 하고 외부의 접근으로부터 완전히 차단해서는 안된다.
  • 객체들이 서로 정보를 교환하고 통신을 하기 위해 일부 요소의 공개 노출이 필요하다.
  • 보통 멤버 함수를 Public으로 선언하여 외부에 공개한다.

 

C++ 객체는 멤버 함수와 멤버 변수로 구성

  • 고유한 상태(state)와 행동(behavior)로 구성
  • 멤버 변수 => 객체의 상태를 나타내는 속성
  • 멤버 함수 => 행동을 구현한 코드
  • 외부에서 c++ 객체에게 어떤 작업을 요청하거나 상태를 알고자할 때 객체 내에 공개된 멤버 함수를 호출한다.

 

클래스 vs 객체

  • c++에서 class란 객체를 정의하는 틀 혹은 설계도
  • 즉, 객체는 클래스라는 틀레어 찍어내어, 멤버 변수 메모리와 멤버 함수 코드를 실제 가지고 C++ 프로그램이 실행되는 동안 실존하는 실체 혹은 인스턴스(instance)
  • 이러한 객체들은 상호 별도 공간에 생성
  • new 연산자를 통해 객체를 생성하면, 해당 객체에 대한 메모리는 힙 영역에 동적으로 할당

생성된 tv 객체는 별도의 메모리 영역에 멤버들을 만듬

 


클래스(Class)

  • class 키워드를 이용하며 아래와 같이 선언부와 구현부로 구분된다.
    • 구분 이유는 클래스의재사용을 위하여..
  • 접근 지정자는 public, private, protected 3가지로 구분
    • public => 클래스 외부로부터의 접근 허용
    • private => 외부에서 전혀 x, 접근 지정의 디폴트 값
    • protected => 상속에 관련해서 나중에 다룬다.
class Circle {
    public: // 멤버에 대한 접근 지정자
        int radius; // 멤버 변수
        double getArea(); // 멤버 함수
}; // 세미클론으로 끝남

// 위 : 선언부, 아래 : 구현부

double Circle::getArea() {
    return 3.14*radius*radius;
}
728x90