-
명품 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