【发布时间】:2013-01-11 23:00:29
【问题描述】:
我已经广泛搜索了这个问题的具体答案,但找不到。我正在尝试使用可以在派生类中覆盖的虚拟运算符> 创建一个基类。目前我遇到了问题,因为声明函数只需要一个输入变量(如“bool operator>(Derived & a)”但试图在 cpp 文件中定义它告诉我它需要两个输入(如“bool operator >(派生和a,派生和b))
我尝试过定义内联运算符,但随后我得到错误,它认为派生类仍然是抽象的,因为我将派生类型传递给运算符,如上所示,而不是基类。但是如果我传递了基类,那么我就无法访问派生的成员变量,我需要进行比较。
我想我在这里遗漏了一些简单的东西,但我似乎无法弄清楚它是什么。
希望您能提供帮助。 谢谢
【问题讨论】:
-
你定义为
bool Derived::operator>(Derived &a) ...吗? -
虚拟比较运算符有点难以理解。您想如何比较具有不同类型的两个对象?
-
我想比较具有相同类型的对象,但我不知道要进入哪个类型。我想允许每种类型指定自己的比较运算符,以便以哪个类型为准比较,可以进行正确的比较。
标签: c++ binary overloading operator-keyword derived