-
C++ 연습문제 9.11C++ 2021. 11. 7. 16:44728x90반응형
임의 길이의 int형 배열을 다룰 수 있는 Array 클래스를 작성해보라. 멤버 변수로는 배열의 크기(int count_), 배열 포인터(int* ary_)를 가지고 있다. 객체 생성 시 각 원소의 값은 rand 함수를 사용하여 임의의 값(0 ~ 9)으로 채우도록 하라. 소멸자에서는 동적으로 생성한 메모리를 해제해야 한다. 다음 main 함수와 같이 실행될 수 있도록 만들어보라.
main.cpp :
#include <iostream> #include <ctime> #include "array.h" using namespace std; int main() { srand((unsigned)time(NULL)); Array ary1(3); Array ary2(5); cout << ary1 << endl; cout << ary2 << endl; ary1 = ary2; cout << ary1 << endl; cout << ary2 << endl; return 0; }
내 코드 (array.h) :
#include <iostream> #include <cstdlib> using namespace std; class Array { private: int cnt_; int* ary_; public: Array& operator=(const Array& ary) { delete[] ary_; cnt_ = ary.cnt_; ary_ = new int[cnt_]; for (int i = 0; i < cnt_; i++) ary_[i] = ary.ary_[i]; return (*this); } friend ostream& operator<<(ostream& out, const Array& ary); Array(int cnt) { cnt_ = cnt; ary_ = new int[cnt]; for (int i = 0; i < cnt_; i++) ary_[i] = rand() % 10; } ~Array() { delete[] ary_; } }; ostream& operator<<(ostream& out, const Array& ary) { for (int i = 0; i < ary.cnt_; i++) out << ary.ary_[i] << " "; return out; }
728x90반응형'C++' 카테고리의 다른 글
C++ 연습문제 11.6 (0) 2021.11.20 C++ 연습문제 9.8 (0) 2021.11.07 C++ 연습문제 9.2 (0) 2021.10.30 C++ 연습문제 8.5 (0) 2021.10.30 C++ 연습문제 7.9 (0) 2021.10.19