C ++对象+运算符重载指针的动态数组

时间:2017-11-18 22:36:34

标签: c++ pointers operator-overloading

我是c ++的初学者,我努力工作,但我不能...... 这是一个2部分“家庭作业”。首先,我必须执行Interval和ColorInterval(现在无关紧要)类。现在我要做这个IntervalSet类。 我的指针和操作符超载还不是很好,我已经花了好几个小时来做​​这个......

所以我有一个Integer类。以下是来自它的所有重要代码。

   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;
      }
    };

我要做的是:

  • 可以存储Interval对象的IntervalSet类
  • 构造函数:一个数字 - &gt;它必须动态地将这么多指针分配给Interval对象

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

这就是烦人的部分,3运算符重载。

运算符+ =

  • 它获取一个指向Interval对象的指针作为参数,并将其副本放入数组

操作员 -

  • 它从数组+内存处理中删除以前添加的元素

运营商LT;&LT;

  • 使用Interval
  • 类中的打印功能打印存储的间隔

我甚至没有尝试过操作符 - 只有+ =和ostream。 而且我无法插入它们,因为我尝试了许多不同的方法,无法决定插入哪一个......:D 就是这样,希望有人可以帮助我,我不会失败。 :d

1 个答案:

答案 0 :(得分:0)

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

      return *(this)
  }

你可以弄清楚其余的......