我有一个worker类,每个worker都有一个指针数组,指向同时也是worker的同事。
我想重载+=运算符,以便能够执行以下操作:* 工人1 += * 工人2。
此操作将把worker2添加到worker1的同事数组中,并把worker1添加到worker2的同事数组中。(worker1、worker2是指针)。
相关的Worker类结构:
class Worker{
private:
Worker** coWorkers
}
我尝试实现的函数:
const Worker& Worker::operator+=(const Worker& other){
}
问题是“其他人”是const,但“同事”不是const,所以我无法执行以下操作:
this->coWorkers[last] = &other;
我怎样才能解决这个问题?
1条答案
按热度按时间whlutmcx1#
首先,现代C++使用std::vector或std::list代替
Worker** coWorkers
。我认为在您的情况下,首选列表,因为您不知道初始化期间同事的确切数量,以及容器,即同事列表可以及时更改,即添加新同事和轮换某人,切换公司等。您可以将员工推回到列表中,如下例所示:
检查output