2017-11-18 6 views
0

저는 C++의 초보자입니다.이 작업을하기 위해 열심히 노력했지만, 그럴 수 없었습니다 ... 두 부분으로 된 "집 할당"입니다. 먼저 Interval 및 ColorInterval (지금은 중요하지 않음) 클래스를 수행해야했습니다. 이제 IntervalSet 클래스를 작성해야합니다. 아직 포인터와 연산자 오버로딩에 익숙하지 않아서 이것을 만들기 위해 몇 시간 씩 노력해 왔습니다 ...C++ 객체 + 연산자 오버로드에 대한 포인터의 동적 배열

그래서 정수형 클래스가 있습니다. 여기에 모든 수입 코드가 있습니다.

class Interval { 
    protected: 
     double start; 
     double end; 
    public: 
     Interval(double start, double end) : start(start), end(end) {} 
     Interval(Interval& copy) 
     { 
     this->start = copy.start; 
     this->end = copy.end; 
     } 
     ~Interval() {} 
     virtual void Print() 
     { 
     cout << "[ " << start << ", " << end << " ]" << endl; 
     } 
    }; 

나는 수 있도록 한 것을 :

  • 간격
  • 생성자 객체를 저장할 수있는 IntervalSet 클래스 : 숫자 - 동적이 많은 포인터를 할당 할 수>는 간격

    개체를 한에
    class IntervalSet : public Interval { 
    private: 
        int size; 
        Interval** store; 
    public: 
        IntervalSet(int size) : size(size) 
        { 
        this->store = new Interval*[this->size]; 
        } 
    ~IntervalSet() 
        { 
        delete[] store; 
        } 
    

그리고 여기에는 앤 온다 oying 부분, 3 연산자 과부하.

연산자 + =

  • 는 파라미터로서주기 객체에 대한 포인터를 취득는 이전에 추가 제거합니다

operator--

  • 어레이로의 복사본을 둔다 배열의 요소 + 메모리 처리
클래스 간격

에서 인쇄 기능 저장된 간격 인쇄 0

연산자 < <

  • 심지어 단지 + = 상기 ostream에를 operator--을 시도하지 않았다. 그리고 여러 가지 방법으로 시도했기 때문에 삽입 할 수 없으며 삽입 할 항목을 결정할 수 없기 때문에 ... : D 그게 다행입니다. 누군가가 나를 도울 수 있기 때문에 수업에 실패하지 않을 것입니다. : D

+2

가능한 복제 [? 연산자 오버로딩에 대한 기본 규칙 및 숙어은 무엇] (https://stackoverflow.com/questions/4421706/을 나머지를 알아낼 수 기본 규칙 및 관용구 오버로드에 대한 기본 규칙) – user463035818

답변

0
IntervalSet & operator+= (Interval & new_interval) { 
     store[size] = new_interval; 
     size++; 

     return *(this) 
    } 

을 당신은 ...의