【问题标题】:C++ Dynamic array of pointers to object + operator overloadingC++ 指向对象的动态指针数组 + 运算符重载
【发布时间】:2017-11-18 22:36:34
【问题描述】:

我是 C++ 的初学者,我已经非常努力地让它工作,但我不能...... 这是一个两部分的“家庭作业”。首先,我必须做 Interval 和 ColorInterval(现在没关系)类。现在我要做这个 IntervalSet 类。 我对指针和运算符重载还不是很擅长,我已经尝试了几个小时来做​​到这一点......

所以我有一个整数类。这是其中的所有重要代码。

   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类
  • 构造函数:一个数字 -> 它必须动态分配这么多指向 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 对象的指针作为参数并将其副本放入数组中

操作员--

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

运营商

  • 使用 Interval 类中的 Print 函数打印存储的间隔

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

【问题讨论】:

标签: c++ pointers operator-overloading


【解决方案1】:
IntervalSet & operator+= (Interval & new_interval) {
      store[size] = new_interval;
      size++; 

      return *(this)
  }

剩下的你自己猜吧……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2012-03-09
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多