1. v.01에서 구조체 Account를 클래스 Account로 변경 - "어떻게 캡슐화를 시키고 정보를 은닉시켜야 할까?" - "생성자와 소멸자는 어떻게 정의해야 할까?" 2. 고객의 이름을 동적 할당의 형태로 구현 - Account 클래스는 멤버변수로 문자열 포인터(char형 포인터)를 지니고 있어야 한다. 3. 객체 배열을 선언하지 말고, 객체 포인터 배열을 선언해서 객체를 저장 #include #include using namespace std;const int NAME_LEN = 20;void ShowMenu();void MakeAccount();void DepositMoney();void WithdrawMoney();void ShowAllAccInfo();enum {MAKE=1, DEPOSI..
명함을 의미하는 NameCard 클래스를 정의해보자. 이 클래스에는 다음의 정보가 저장되어야 한다. - 성명 - 회사이름 - 전화번호 - 직급 단, 직급 정보를 제외한 나머지는 문자열의 형태로 저장을 하되, 길이에 딱 맞는 메모리 공간을 할당 받는 형태로 정의하자 (동적 할당하라는 의미이다.) 그리고 직급 정보는 int형 멤버변수를 선언해서 저장을 하되, 아래의 enum 선언을 활용해야 한다.enum {CLERK, SENIOR, ASSIST, MANAGER};위의 enum 선언에서 정의된 상수는 순서대로 사원, 주임, 대리, 과장을 뜻한다. 그럼 다음 main 함수와 실행의 예를 참조하여, 이 문제에서 원하는 형태대로 NameCard 클래스를 완성해보자.int main(void){ NameCard man..
앞서 제시한 문제 04-2를 해결하였는가? 당시만 해도 생성자를 설명하지 않은 상황이기 때문에 별도의 초기화 함수를 정의 및 호출해서 Point, Circle, Ring 클래스의 객체를 초기화하였다. 이때 구현한 답에 대해서 모든 클래스에 생성자를 정의해보자. [풀이]#include using namespace std;class Point{private: int xpos, ypos;public: Point(int x, int y) :xpos(x), ypos(y) { } void ShowPointInfo() const { cout
다음의 Point 클래스를 기반으로 하여(활용하여) 원을 의미하는 Circle 클래스를 정의하자.class Point{private: int xpos, ypos;public: void Init(int x, int y) { xpos = x; ypos = y; } void ShowPointInfo() const { cout Circle 객체에는 좌표상의 위치 정보(원의 중심좌표)와 반지름의 길이 정보를 저장 및 출력할 수 있어야 한다.그리고 여러분이 정의한 Circle 클래스를 기반으로 Ring 클래스도 정의하자. 링은 두 개의 원으로 표현 가능하므로(바깥쪽 원과 안쪽 원), 두 개의 Circle 객체를 기반으로 정의가 가능하다.참고로 안쪽 원과 바깥쪽 원의 주임좌표가 동일하다면 두께가 일정한 링을 표..
Chapter 03에서 제시한 과일장수 시뮬레이션 예제 FruitSaleSim1.cpp에서 정의한 두 클래스의 멤버변수는 private으로 선언이 되어있다. 그러나 다음 조건을 유지할 수 있는 장치는 아무것도 되어있지 않다. - 사과의 구매를 목적으로 0보다 작은 수를 전달할 수 없다. 위의 제약사항을 항상 만족시킬 수 있도록 예제를 변경하고, 예제의 안전성을 높일 수 있도록 일부 함수를 const로 선언해보자. [풀이]//FruitSaleSim1.cpp#include using namespace std;class FruitSeller{private: int APPLE_PRICE; int numOfApples; int myMoney;public: void InitMembers(int price, in..