在我的 processor
类有一个数组<Job, 10>
.
void Processor::addJob(Job job) {
this->Jobs[this->uBound] = job;
this->uBound++;
}
我想在我的 processor
中添加一个新元素类(class)。为此,我创建了新的 private: int uBound = 0
我的属性(property)processor
类(class)。我直接分配 this->Jobs[this->uBound] = job;
.它给了我一个错误。它说Error : no operator "=" matches these operands. operand types are: std::array<Job, 10U> = Job
.
所以我尝试使用 this->Job->assign(Job)
;它分配给了我的所有元素 Jobs
,但我只想要一个元素。
这里是 Job
的类
class Job {
public:
string name;
public :
int length = 0;
public:
bool used = false;
public:
Job();
public:
Job(string n, int l);
~Job();
};
这里是Processor
类
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();
};
我不知道这个错误是什么意思。
有没有其他方法可以添加 Job
反对 Processor->Jobs
?
任何帮助表示赞赏,谢谢...
最佳答案
正确的语法应该是这样的
( *this->Jobs )[this->uBound] = job;
虽然不清楚为什么动态分配数组。
当然你也可以这样写:)
this->Jobs[0][this->uBound] = job;
但这只会让代码的读者感到困惑。
关于c++ - 无法直接分配元素 std::array,它说没有运算符 "="匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917064/