【发布时间】:2017-05-08 12:55:22
【问题描述】:
就我而言,我有一个 std::list<Ort*> ,其中 Ort 是我制作的自定义类
该列表包含指向 Ort 对象的指针。
我喜欢使用+= 重载list.push_back() 函数,这样我就可以
通过写入直接推送对象:
List<Ort*> Orte;
Ort* o = new Ort(..);
Orte+=o;
我尝试的是:
void Navi::operator+=(const Ort& b)
{
*this->Orte.push_back(b);
}
Navi 是一个包含“Orte”列表的类。
但它告诉我它找不到正确的运算符重载 - 也就是我的参数不正确。
谁能指出我做错了什么?
【问题讨论】:
-
当
Orte是List<Ort*>时,你为什么要重载Navi? -
已编辑 - Navi 是一个具有属性 List
Orte; 的类 -
const Ort&和Ort*是完全不同的类型。 -
如果您需要实际帮助,您需要显示一些实际代码。具体来说,
Navi的真正含义是什么。查看帮助中心中有关编写最小、完整且可验证的示例的部分。 -
你为什么要这样做?毫无意义的运算符重载,特别是对于像
std::list这样的现有类,只会导致其他阅读您的代码的人感到困惑。
标签: c++ pointers overloading operator-keyword