정신과 시간의 방
작성일
2022. 9. 16. 23:59
작성자
risehyun

3.1 객체에 대한 이해

  • 우리 주변에 있는 모든 것 (컴퓨터, 책 등)이 객체이다.

  • 객체의 캡슐화
    - 캡슐화란, 객체의 구성 요소들을 캡슐로 싸서 외부로부터 보호하고 볼 수 없게 하는 것을 의미한다.
    - 객체는 캡슐화를 통해 외부의 접근을 통제해 자신의 내부 요소들을 보호함.

  • 객체의 일부 요소는 공개된다
    - 실세계나 C++ 프로그램에서나 시스템은 구성 객체들이 서로 상호 작용을 하면서 구동된다.
    - 즉, 객체들이 서로 정보를 교환하고 통신하기 위해 일부 요소는 노출될 수 있다.

  • C++ 객체의 구성
    - 멤버 함수 : 객체의 행동을 구현하는 코드
    - 멤버 변수 : 객체의 상태를 나타내는 속성들

  • C++ 클래스와 C++ 객체
    - 클래스란, 객체를 정의하는 틀 혹은 설계도를 의미하며 클래스에 멤버 함수와 멤버 변수를 선언함.
    - 객체란, 멤버 변수 메모리와 멤버 함수 코드를 실제로 가지고 C++ 프로그램이 실행되는 동안 실존하는 실체 혹은 인스턴스다.
    - 클래스는 하나지만, 객체는 얼마든지 생성될 수 있다. (클래스는 붕어빵 틀이고, 객체는 틀에서 만들어진 붕어빵과 같다)
    - 생성된 객체들은 상호 별도 공간에 생성된다. 따라서 동일한 멤버 변수의 값이 각 TV 객체에서 서로 다르게 유지된다.

 

3.2 C++ 클래스 만들기

  • 클래스 만들기
    - C++에서는 class 키워드를 이용해 클래스를 선언한다.
    - C++ 클래스는 C언어의 구조체와 같이 개발자가 정의하는 새로운 데이터 타입이다.
    - 클래스는 일반적으로 클래스 선언부와 클래스 구현부로 나누어 작성된다.
    - 클래스 선언부에는 class 키워드로 클래스의 모양을 선언, 클래스 구현부에는 클래스의 멤버 함수들을 구현한다.

  • 클래스 선언과 구현의 분리
    - 클래스를 클래스 선언과 클래스 구현으로 분리하여 작성하는 이유는 클래스 재사용을 위해서다.
    (클래스를 사용하고자 하는 다른 C++ 파일에서는 컴파일 시 클래스의 선언부만 필요하기 때문)

  • 클래스 선언 및 객체 생성 예제
#include <iostream>
using namespace std;

class Circle
{
	public:
		int radius;
		double getArea();
};

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

int main()
{
	Circle donut;
	donut.radius = 1;
	double area = donut.getArea();
	cout << "donut 면적은 " << area << endl;
	
	Circle pizza;
	pizza.radius = 30;
	area = pizza.getArea();
	cout << "pizza 면적은 " << area << endl; 
}

'C,C++ > [서적] 명품 C++ 프로그래밍' 카테고리의 다른 글

06. 함수 중복과 static 멤버  (0) 2022.10.14
05. 함수와 참조, 복사 생성자  (0) 2022.10.09
02. C++ 프로그래밍의 기본  (0) 2022.08.09
01. C++ 시작  (0) 2022.07.13