항목 20. 데이터 멤버를 공용 인터페이스에 포함시키지 않는다. 이유 1. 가독성이 매우 떨어진다. - 어떤것은 public 이고 어떤것은 private면 무엇이 public인지 private인지 알고 있어야 한다. 2. 정보은닉이 되지 않아 디버깅 능력이 떨어지게 된다. 해결 방법 1. 데이터는 모두 private로 넣어 둔다. 2. Get / Set 을 이용한다. 개인적인 생각 #define 문구를 만들어 멤버 데이터에 그 표시를 해둔다. #define NOACCESS #define READ #define WRITE #define ONLY class CBabo { public: private: READ ONLY int a; // ㅋㅋㅋ READ WRITE int b; WRITE ONLY int c; ..
전체 글 검색 결과
19. 멤버 함수, 비멤버 함수 및 프렌드를 구별한다. # 멤버함수와 비멤버 함수의 차이점 멤버 함수는 가상 함수일 수 있다. 비멤버 함수는 가상 함수가 아니다! 이유 1. 클래스의 객체가 입출력 및 사칙연산시 자연스러운 호출 되지 않아, 가독성 및 인터페이스가 영 꽝이 되기 때문이다. 예) 3 * Class Object 와 Class Object * 3 의 차이이다. 해결 방법 1. 전역 변수로 operator를 만들어 사용 한다. 이때 관리를 위해 한 클래스 해더파일에 정의하는 편이 좋다. 2. 멤버 함수로써 처리가 가능하다면 멤버 함수로만 사용하고, friend가 필요 하다면, friend로 선언해야 한다. 3. 각각의 특징과 쓰임을 파악하면 된다. 주의점 코드를 보고 이해하자. #include u..
항목 18. 최소한의 완전한 클래스 인터페이스를 구축한다. 클래스 클라이언트 인터페이스란? 클래스를 이용하는 프로그래머가 접근할 수 있는 인터페이스다 (public) 이유 1. 인터페이스 내에 함수들이 많아짐에 따라 미래의 클라이언트들은 이해하기 어려워진다. 2. 적은 함수들을 가진 클래스보다 많은 함수들을 가진 클래스를 관리 또는 수정하기 더 어렵다. 3. 길다란 클래스 정의는 길다란 헤더파일을 초래하여, 컴파일 시간에 상당한 불이익을 가져올수 있다. 해결 방법 1. 한번만 Set 하면 되는 경우 생성자를 통하여 값을 넣어라. 2. operator= 으로 한번만 Set 하면 되는 멤버 변수의 값이 변경된다면, Get 함수 사용시 const 로써 불려지게 만들어라. (이건 매우 속편하다. 이런것까지 고려..
1. 양질의 프로그램을 개발하고자 한다면, 초기 단계의 고려가 완성 단계보다 큰 영향을 끼친다는것을 기억해라. 2. 프로그램어의 업무의 일부로 프로그램 작성을 시작하기 전에 준비물을 챙겨라 3. 올바른 문제를 찾고 컨스트럭션을 해라 4. 만일 요구 분석이 제대로 안되었다면 시간낭비이므로 시작전에 충분히 조사해라 5. 마일 아키텍처 설계가 제대로 완성되지 않았다면 컨스트럭션이 힘들게 되므로, 충분히 아키텍쳐를 짜라 6. 모든 준비물이 다 있는지 체크하고 필요조건이 완전히 다 파악되지 않았다면, 유동성 있는 구조에 바탕을 둔 컨스트럭션 방법을 택해라.
이제 프로젝트에 필요조건들을 적용시켜보도록 하자.
최근댓글