C++
-
명품 C++ 5장 9번C++ 2018. 10. 31. 20:02
9. 클래스 Accmulator는 add() 함수를 통해 계속 값을 누적하는 클래스로서, 다음과 같이 선언된다. Accmulator 클래스를 구현하라. 소스코드 #include using namespace std;class Accmulator { int value;public: Accmulator(int value); // 매개 변수 value로 멤버 value를 초기화한다. Accmulator& add(int n); // value에 n을 더해 값을 누적한다. int get();};Accmulator::Accmulator(int value) { this->value = value;}Accmulator& Accmulator::add(int n) { value += n; return *this;}int A..
-
명품 C++ 5장 8번C++ 2018. 10. 31. 19:55
8. 문제 7번의 MyIntStack를 수정하여 다음과 같이 선언하였다. 스택에 저장할 수 있는 정수의 최대 개수는 생성자에서 주어지고 size 멤버에 유지한다. MyIntStack 클래스를 작성하라. 소스코드 #include using namespace std;class MyIntStack { int *p; // 스택 메모리로 사용할 포인터 int size; // 스택의 최대 크기 int tos; // 스택의 탑을 가리키는 인덱스public: MyIntStack(); MyIntStack(int size); MyIntStack(MyIntStack &s); // 복사 생성자 ~MyIntStack(); bool push(int n); // 정수 n 푸시. 꽉 차 있으면 false, 아니면 true 리턴 bo..
-
명품 C++ 5장 7번C++ 2018. 10. 31. 19:36
7. 다음과 같이 선언된 정수를 저장하는 스택 클래스 MyIntStack을 구현하라. MyIntStack 스택에 저장할 수 있는 정수의 최대 개수는 10이다. 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 클래스를 활용하는 코드와 실행 결과는 다음과 같다. int main() { MyIntStack a; for (int i = 0; i < 11;..
-
명품 C++ 5장 6번C++ 2018. 10. 31. 18:03
6. find() 함수의 원형은 다음과 같다. 문자열 a에서 문자 c를 찾아, 문자 c가 있는 공간에 대한 참조를 리턴한다. 만일 문자 c를 찾을 수 없다면 success 참조 매개 변수에 false를 설정한다. 물론 찾게 되면 success에 true를 설정한다. char& fine(char a[], char c,bool& success) 다음 main()이 잘 실행되도록 find()를 작성하라. 소스코드 #include #include using namespace std;char& find(char a[], char c, bool& success) { for (int i = 0; i < strlen(a); ++i) { if (a[i] == c) success = true; } return *a;}in..
-
명품 C++ 5장 4번C++ 2018. 10. 31. 17:34
4. 아래의 같이 원형이 주어진 bigger()를 작성하고 사용자로부터 2개의 정수를 입력받아 큰 값을 출력하는 main()을 작성하라. bigger()는 인자로 주어진 a, b가 같으면 true, 아니면 false를 리턴하고 큰 수는 big에 전달한다. 소스코드 #include using namespace std;bool bigger(int a, int b, int &big) { if (a == b) return true; else { big=(a > b) ? a : b; return false; } }int main() { cout > a >> b; if (bigger(a, b, big)) cout
-
명품 C++ 5장 3번C++ 2018. 10. 31. 17:23
3. 다음과 같이 작동하도록 combine() 함수를 작성하라. 소스코드 #include using namespace std;#include void combine(string t1,string t2,string &t3) { t3 = t1 +" "+ t2;}int main() { string text1("I love you"), text2("very much"); string text3;// 비어있는 문자열 combine(text1, text2, text3); // text1과 " ", 그리고 text2를 덧붙여 text3 만들기 cout