C++

C++ 연습문제 8.5

wooob 2021. 10. 30. 22:59
728x90

Array 클래스는 임의 개수의 int형 원소를 저장할 수 있는 클래스이다. 이르르 위해 배열을 가리키는 포인터 변수(int *ary_)와 원소의 개수를 의미하는 int형 변수(int cnt_)를 멤버 변수로 가지고 있다. 다음 main 함수와 실행 화면을 참고하여 Array 클래스를 작성해보라. 단, 객체 소멸 시 소멸자를 통해 해당 객체를 위해 동적으로 생성한 메모리를 해제해야만 한다.

 

main.cpp :

#include <iostream>
#include "Array.h"
using namespace std;

int main() {
	Array ary1(5);
	Array ary2(7);
	Array ary3(ary1);

	ary2.Set(0, 11).Set(1, 12).Set(2, 13);

	ary1.Print();
	ary2.Print();
	ary3.Print();

	return 0;
}

 

내 코드(Array.h) :

#include <iostream>
using namespace std;

class Array {
private:
	int* ary_;
	int cnt_;

public:
	Array(const Array &ary) {
		cnt_ = ary.cnt_;
		ary_ = new int[cnt_];

		for (int i = 0; i < cnt_; i++)
			ary_[i] = ary.ary_[i];
	}
	
	Array(int cnt) {
		cnt_ = cnt;
		ary_ = new int[cnt_];

		for (int i = 0; i < cnt_; i++)
			ary_[i] = i;
	}

	~Array() {
		delete[] ary_;
	}
	
	Array &Set(int a, int b) {
		ary_[a] = b;
		return *this;
	}
	
	void Print() {
		for (int i = 0; i < cnt_; i++) {
			cout << ary_[i];
			cout << " ";
		}
		cout << endl;
	}
};
728x90