본문 바로가기

C++ programming

(122)
명품 C++ programming 실습 문제 6장 2번 문제 : Person 클래스의 객체를 생성하는 main() 함수는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Person { int id; double weight; string name; public: void show() { cout
명품 C++ programming 실습 문제 6장 1번 문제 : add() 함수를 호출하는 main() 함수는 다음과 같다. 1 2 3 4 5 6 7 8 int main() { int a[] = {1,2,3,4,5}; int b[] = {6,7,8,9,10}; int c = add(a, 5); // 배열 a의 정수를 모두 더한 값 리턴 int d = add(a, 5, b); // 배열 a와 b의 정수를 모두 더한 값 리턴 cout
명품 C++ programming 실습 문제 5장 12번 문제 : 다음은 학과를 나타내는 Dept 클래스와 이를 활용하는 main()을 보여 준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Dept { int size; // scores 배열의 크기 int* scores; // 동적 할당 받을 정수 배열의 주소 public: Dept(int size) { // 생성자 this->size = size; scores = new int[size]; } Dept(const Dept& dept); // 복사 생성자 ~Dept(); // 소멸자 int getSize() { return size; } void read(); // size 만큼 키보드에서 정수를 읽어 scores 배열에 저장 bool isOver60(int index); // i..
명품 C++ programming 실습 문제 5장 11번 문제 : 책의 이름과 가격을 저장하는 다음 Book 클래스에 대해 물음에 답하여라. 1 2 3 4 5 6 7 8 9 class Book { char *title; // 제목 문자열 int price; // 가격 public: Book(const char* title, int price); ~Book(); void set(char* title, int price); void show() { cout price = b.price; } ● 문제 (3) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include..
명품 C++ programming 실습 문제 5장 10번 문제 : 참조를 리턴하는 코드를 작성해보자. 다음 코드와 실행 결과를 참고하여 append() 함수를 작성하고 전체 프로그램을 완성하라. append()는 Buffer 객체에 문자열을 추가하고 Buffer 객체에 대한 참조를 반환하는 함수이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Buffer{ string text; public: Buffer(string text) { this->text = text; } void add(string next) { text += next; } // text에 next 문자열 덧붙이기 void print() { cout
명품 C++ programming 실습 문제 5장 9번 문제 : 클래스 Accumulator는 add() 함수를 통해 계속 값을 누적하는 클래스로서, 다음과 같이 선언된다. Accumulator 클래스를 구현하라. 1 2 3 4 5 6 7 class Accumulator{ int value; public: Accumulator(int value); // 매개 변수 value로 멤버 value를 초기화한다. Accumulator& add(int n); // value에 n을 더해 값을 누적한다. int get(); // 누적된 값 value를 리턴한다. }; Accumulator는 다음과 같이 main() 함수에 의해 활용된다. 1 2 3 4 5 int main() { Accumulator acc(10); acc.add(5).add(6).add(7); // a..
명품 C++ programming 실습 문제 5장 8번 문제 : 문제 7번의 MyIntStack을 수정하여 다음과 같이 선언하였다. 스택에 저장할 수 있는 정수의 최대 개수는 생성자에서 주어지고 size 멤버에 유지한다. MyIntStack 클래스를 작성하라. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class MyIntStack{ int *p; // 스택 메모리로 사용할 포인터 int size; // 스택의 최대 크기 int tos; // 스택의 탑을 가리키는 인덱스 public: MyIntStack(); MyIntStack(int size); MyIntStack(const MyIntStack& s); // 복사 생성자 ~MyIntStack(); bool push(int n); // 정수 n을 스택에 푸시한다. // 스택이 꽉 차 있으면 ..
명품 C++ programming 실습 문제 5장 7번 문제 : 다음과 같이 선언된 정수를 저장하는 스택 클래스 MyIntStack을 구현하라. MyIntStack 스택에 저장할 수 있는 정수의 최대 개수는 10이다. 1 2 3 4 5 6 7 8 class MyIntStack{ int p[10]; // 최대 10개의 정수 저장 int tos; // 스택의 꼭대기를 가리키는 인덱스 public: MyIntStack(); bool push(int n); // 정수 n 푸시. 꽉 차 있으면 false, 아니면 true 리턴 bool pop(int &n); // 팝하여 n에 저장. 스택이 비어 있으면 false, 아니면 true 리턴 }; MyIntStack 클래스를 활용하는 코드와 실행 결과는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 i..