Page 99

NOTE_ 이 장에서는 여러 개념을 하나씩 소개하기 위해 SpreadsheetCell 클래스를 조금씩 업그레이드하

는 방식으로 설명한다. 따라서 이 클래스의 각 버전을 사용하는 데 적용된 기법은 완벽하지 않을 수 있다. 특 히 앞부분에 나온 코드에서는 흔히 사용하는 중요한 기능이더라도 정식으로 소개하기 전까지는 의도적으로 설명을 생략했다. 예제 코드의 최종 버전은 한빛미디어 웹 페이지에서 다운로드할 수 있다.

8.2 클래스 작성 방법 클래스를 작성하려면 그 클래스의 모든 객체에 적용할 동작(메서드)과 각 객체마다 가질 속성 (데이터 멤버)을 지정한다. 클래스를 작성하는 과정은 클래스를 정의하는 단계와 클래스의 메서드를 정의(클래스를 구현) 하는 단계로 구성된다.1

8.2.1 클래스 정의 SpreadsheetCell 클래스의 첫 버전을 작성해보자. 여기서는 각 셀마다 숫자 하나만 저장하도

록 정의한다. class SpreadsheetCell { public: void setValue(double inValue); double getValue() const; private: double mValue; };

1장에서 설명했듯이 클래스 정의는 항상 class 키워드와 클래스 이름으로 시작한다. C++에 서 클래스 정의 class definition 는 문장 statement 이다. 따라서 반드시 세미콜론(; )으로 끝나야 한다.

1 옮긴이_ 전자를 선언 또는 정의라 부르고, 후자를 구현이라 부르는 경우도 많이 볼 수 있는데, 선언은 변수의 타입이나 함수의 프로토타입 등을 컴파일러에 미리 알려주는 것이고, 정의는 단순히 선언하는 데 그치지 않고 실행 파일에 실체를 작성하는 것이다. 또한 구현은 추상 적으로 정의된 대상을 구체화하는 과정을 말하며, C++에서는 클래스 정의에 ‘선언’된 메서드를 구체적으로 정의할 때도 ‘구현’이라 표현 한다. 이 책에서는 ‘선언’, ‘정의’, ‘구현’이란 용어를 다음과 같이 사용한다. “클래스를 ‘정의’하는 .h 파일에서 데이터 멤버나 메서드를 ‘선 언’하고, 그 클래스의 메서드를 ‘정의’하는 코드는 소스 파일(.cpp )에 구현한다.” 간혹 클래스 정의(.h )와 클래스 구현(.cpp )이란 표현도 사용하지만 클래스를 ‘선언’한다는 표현은 사용하지 않았다.

8장 클래스와 객체 숙달하기 311

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement