728x90
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다!
https://search.shopping.naver.com/book/catalog/32436115747
객체란 우리 주변에 존재하는 모든 것이며 아래와 같은 특징이 있다.
객체는 캡슐화된다.
- 캡슐화는 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것으로, 객체의 가장 본질적인 특징이다.
- 다시 말해 객체는 캡슐화를 통해 외부의 접근을 통제하여 자신의 내부 요소들을 보호한다.
객체의 일부 요소는 공개된다.
- 구성 객체들이 상호 통신을 하면서 시스템이 구동된다.
- 그러므로 객체를 완벽히 캡슐화하여 모든 요소를 보이지 않게 하고 외부의 접근으로부터 완전히 차단해서는 안된다.
- 객체들이 서로 정보를 교환하고 통신을 하기 위해 일부 요소의 공개 노출이 필요하다.
- 보통 멤버 함수를 Public으로 선언하여 외부에 공개한다.
C++ 객체는 멤버 함수와 멤버 변수로 구성
- 고유한 상태(state)와 행동(behavior)로 구성
- 멤버 변수 => 객체의 상태를 나타내는 속성
- 멤버 함수 => 행동을 구현한 코드
- 외부에서 c++ 객체에게 어떤 작업을 요청하거나 상태를 알고자할 때 객체 내에 공개된 멤버 함수를 호출한다.
클래스 vs 객체
- c++에서 class란 객체를 정의하는 틀 혹은 설계도
- 즉, 객체는 클래스라는 틀레어 찍어내어, 멤버 변수 메모리와 멤버 함수 코드를 실제 가지고 C++ 프로그램이 실행되는 동안 실존하는 실체 혹은 인스턴스(instance)
- 이러한 객체들은 상호 별도 공간에 생성
- new 연산자를 통해 객체를 생성하면, 해당 객체에 대한 메모리는 힙 영역에 동적으로 할당
클래스(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
'Programming Language > C++' 카테고리의 다른 글
[C++] 소멸자 (2) | 2023.11.29 |
---|---|
[C++] 생성자 (1) | 2023.11.27 |
[C++] 키보드로 문자열 입력 및 헤더 파일에 관해서 (1) | 2023.11.27 |
[C++] C++ 프로그래밍 기본 (1) | 2023.11.27 |
[C++] 특징과 객체 지향 프로그래밍 (1) | 2023.11.27 |