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

C++ Dynamic array of pointers to object + operator overloading

本文关键字:数组 运算符 重载 动态 指针 对象 C++      更新时间:2023-10-16

我是c++的初学者,我一直在努力让它发挥作用,但我做不到。。。这是一个由两部分组成的"家庭作业"。首先,我必须做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类
  • 构造函数:一个数字->它必须动态分配这么多指向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;

  • 使用Interval类的Print函数打印存储的Intervals

我甚至没有尝试过运算符--,只有+=和ostream。我无法插入它们,因为我尝试了很多不同的方式,但无法决定插入哪一种…:D就是这样,希望有人能帮助我,我不会不及格D

IntervalSet & operator+= (Interval & new_interval) {
store[size] = new_interval;
size++; 
return *(this)
}

你可以算出剩下的…