C++ 无法直接分配元素std::array,它表示“无运算符”=&引用;比赛

C++ 无法直接分配元素std::array,它表示“无运算符”=&引用;比赛,c++,arrays,C++,Arrays,在我的处理器类中,有一个数组 void Processor::addJob(Job job) { this->Jobs[this->uBound] = job; this->uBound++; } 我想在我的处理器类中添加一个新元素。为此,我在我的processor类中创建了新的private:int-uBound=0属性。我直接分配this->Jobs[this->uBound]=job。这给了我一个错误。它表示错误:没有运算符“=”与这些操作数匹配。操作数

在我的
处理器
类中,有一个数组

void Processor::addJob(Job job) {
    this->Jobs[this->uBound] = job;
    this->uBound++;
}
我想在我的
处理器
类中添加一个新元素。为此,我在我的
processor
类中创建了新的
private:int-uBound=0
属性。我直接分配
this->Jobs[this->uBound]=job。这给了我一个错误。它表示
错误:没有运算符“=”与这些操作数匹配。操作数类型为:std::array=Job

所以我试着使用
this->Job->assign(作业)
;它分配给我的
作业的所有元素,但我只想要一个元素

这里是
Job

class Job {
public:
    string name;

public :
    int length = 0;

public:
    bool used = false;

public:
    Job();

public:
    Job(string n, int l);


    ~Job();
};
这里是
处理器

class Processor {

private:
    int turnArround_time = 0;

private:
    int uBound = 0;

public:
    std::array<Job, 10> *Jobs = new std::array<Job, 10>();

public:
    Processor();

public:
    void addJob(Job job);

public:
    int getTurnArround();




    ~Processor();
};
类处理器{
私人:
int turnArround_时间=0;
私人:
int-uBound=0;
公众:
std::array*作业=新std::array();
公众:
处理器();
公众:
void addJob(Job-Job);
公众:
int getTurnArround();
~Processor();
};
我不知道这个错误是什么意思

是否有其他方法将
作业
对象添加到
处理器->作业

感谢您的帮助……

正确的语法如下所示

(*此->作业)[此->uBound]=作业

尽管不清楚为什么会动态分配阵列

当然,您也可以这样写,例如:)


但这只会混淆代码的读取器。

该错误意味着您必须为所讨论的类型声明赋值运算符:
Job&operator=(const Job&rhs)
@Levi很棒的文章,谢谢!顺便说一句,您可能不需要动态分配
作业
数组。它应该像普通课一样好用instance@Levi同意,我怀疑这就是问题的根源。您必须使用类似于
(*this->Jobs)[this->uBound]=job哦,关于这一点,每个
处理器
可能有多个
作业
@Levi@Component10,哦,是的,这很有效,谢谢……因为只有这样我才能在整个项目中工作。。。。我会想出其他方法的谢谢!另一种选择是:
this->Jobs->at(this->uBound)=job
但这也会检查数组边界。@erikzenker是的,可以直接调用该运算符。我想添加此语法,但我的答案已标记为最佳。:)
this->Jobs[0][this->uBound] = job;