ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 4장 4번
    C++ 2018. 10. 29. 23:40

    4. 다음과 같은 Sample 클래스가 있다.


    #include <iostream>
    using namespace std;
    class Sample {
        int *p;
        int size;
    public:
        Sample(int n) { // 생성자
            size = n; p = new int[n]; // n개 정수 배열의 동적 생성
        }
        void read(); // 동적 할당받은 정수 배열 p에 사용자로부터 정수를 입력 받음
        void write(); // 정수 배열을 화면에 출력
        int big; // 정수 배열에서 가장 큰 수 리턴
        ~Sample(); // 소멸자
    };


    다음 main() 함수가 실행되도록 Sample 클래스를 완성하라.


    int main() {
        Sample s(10); // 10개 정수 배열을 가진 Sample 객체 생성
        s.read(); // 키보드에서 정수 배열 읽기
        s.write(); // 정수 배열 출력
        cout << "가장 큰 수는 " << s.big() << endl; // 가장 큰 수 출력
    }


    소스코드


    #include <iostream>
    using namespace std;
    class Sample {
        int *p;
        int size;
    public:
        Sample(int n) { // 생성자
            size = n; p = new int[n]; // n개 정수 배열의 동적 생성
        }
        void read(); // 동적 할당받은 정수 배열 p에 사용자로부터 정수를 입력 받음
        void write(); // 정수 배열을 화면에 출력
        int big(); // 정수 배열에서 가장 큰 수 리턴
        ~Sample(); // 소멸자
    };
    void Sample::read() {
        for (int i = 0; i < size; ++i)
            cin >> p[i];
    }
    void Sample::write() {
        for (int i = 0; i < size; ++i)
            cout << p[i] << ' ';
        cout << endl;
    }
    int Sample::big() {
        int b = p[0];
        for (int i = 1; i < size; ++i) {
            b = (b < p[i]) ? p[i] : b;
        }
        return b;
    }
    Sample::~Sample() {
        delete p;
    }
    int main() {
        Sample s(10); // 10개 정수 배열을 가진 Sample 객체 생성
        s.read(); // 키보드에서 정수 배열 읽기
        s.write(); // 정수 배열 출력
        cout << "가장 큰 수는 " << s.big() << endl; // 가장 큰 수 출력
    }


    실행결과



    클래스의 멤버변수를 동적 할당 했을 때에는 객체를 소멸 시킬 때 메모리를 반환 해줍니다.


    'C++' 카테고리의 다른 글

    명품 C++ 4장 6번  (0) 2018.10.30
    명품 C++ 4장 5번  (0) 2018.10.29
    명품 C++ 4장 3번  (1) 2018.10.29
    명품 C++ 4장 2번  (0) 2018.10.29
    명품 C++ 4장 1번  (0) 2018.10.29

    댓글

© 2018 TISTORY. All rights reserved.