내일배움캠프 9일차 - C++ 객체지향 프로그래밍 : Class
객체지향 프로그래밍의 필요성
실제 현업에서 프로젝트를 진행하면, 한번 완성된 프로젝트는 계속해서 사용되는 경우가 많음.
그 결과 개발을 해야 하는 시간보다, 유지 보수를 해야 하는 시간이 더 길어지고 수정에 필요한 비용도 크게 증가함.
따라서 우리는 유지 보수를 용이하게 하고, 재사용성을 높이는 방향으로 구현해야 함.
C++에서는 이를 위해 객체지향 프로그래밍을 활용할 수 있습니다.
Class
객체지향 프로그래밍의 중심이 되는 기능.
- 하나의 Class객체 안에 필요한 상태(멤버변수)나 기능(멤버함수)를 내재할 수 있다.
- 일부 밖으로 노출할 필요가 없는 것들은 접근권한을 바꿔 숨길 수 있다.
- 이를 통해 필요한 동작만 공개하고 세부 데이터는 숨기는 객체지향 방식이 코드의 변화에 유연하게 대처할 수 있다.
Class 내부 구현 방법
접근제어자
생성자
기본값이 적용된 생성자
멤버 초기화 리스트
클래스 선언 시 헤더(.h)와 소스파일(.cpp)를 분리하는 이유
#ifndef
class를 헤더 파일에 정의할 때 가장 중요한 것은, 해당 class가 중복 선언되지 않도록 하는 것이다. 내가 만든 헤더 파일을 여러 파일에서 사용하다 보면 class가 여러 번 정의될 수 있다.
이를 방지하기 위해 `#ifndef`라는 구문을 활용한다.
다시 한번 정리하면 아래와 같다.
1) #ifndef STUDENT_H_의 의미는 STUDENT_H_가 정의되어 있지 않은 경우에만 아래 코드를 수행하라는 의미이다.
#ifndef일 때만 #define이 수행되므로 단 한 번만 수행될 수 있습니다.
3) #ifndef가 끝났다는 것을 알려주기 위해 #endif를 작성합니다.
4) 최종적으로 Student Class는 중복 포함될 수 없게 됩니다.
상속
속도, 색상 등의 차량의 공통적인 특성을 매번 모든 차량에 개별적으로 구현하는 대신,
하나의 기본 클래스를 정의하고 공통 속성을 구현하고 이를 활용하면 유지 보수가 쉬워지고 코드의 중복을 줄일 수 있다.
댓글
댓글 쓰기