C++ 개념과 사용법
1. 클래스의 특성
* 캡슐화 - 객체가 정해진 인터페이스만 공개하고 객체 내부의 상태와 상세한 구현 사항을 숨기는 것을 캡슐화라고 한다.
* 상속 - 어떤 클래스가 이미 존재하는 클래스를 확장하는 것을 상속한다고 말한다.
(상속은 두 클래스 사이에 is-a 관계를 말한다.)
* 다형성(폴리모피즘)
- 프로그래밍 언어에서 서로 다른 타입의 객체들을 하나의 공통 인터페이스로 다룰 수 있는 기능이다.
* 합성과 집합
- 상속만 사용할 것이 아니라 클래스 간의 관계를 has-a, uses-a 관계를 형성해서 복잡한 상속 관계를 만들지 않고 문제를 해결하는 것이 좋다.
* 디자인 패턴
(GOF를 보고 정리하자..)
2. 코딩규칙
* 인터페이스를 중시할 것 - 간결하고 단순하며 최소한의 것만 포함해야 한다
(이해하기 쉽고, 주석을 잘 달아야한다.)
* 이름을 잘 지을 것 클래스나 함수, 변수의 목적에 맞는 가장 직관적인 이름을 지어야 한다.
* 전역 네임스페이스를 깔끔하게 유지할 것
- 네임스페이스나 이름에 붙이는 접두사 등을 사용해 이름이 다른 라이브러리의 이름과 충돌하지 않게 해야 한다.
#define문을 이용해 이름을 정의하는데 주의가 필요하다.
(C++ 전처리기는 단순히 텍스트를 바꿔 칠 뿐이라서 C/C++의 범위나 네임스페이스를 깡그리 무시하기 때문이다.)
* 널리 알려진 C++ 사용법을 따를 것
* 코딩규칙은 일관되야 한다.
- 코드를 처음부터 짠다면 일관된 규칙을 두고 짜고, 코드를 고친다면 코드의 규칙을 지켜가면서 수정하자.
* 오류를 스스로 드러내는 코드를 작성하라
- 흔히 저지를 수 있는 프로그래밍 오류를 쉽게 볼 수 있도록 해주는 코드가 좋은 코드이다.