ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++ 연습문제 9.11
    C++ 2021. 11. 7. 16:44
    728x90
    반응형

    임의 길이의 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
Designed by Tistory.