我知道派生类“是一个”基类,因此您始终可以将派生对象传递给基本成员函数。现在,我想知道具体的比较运算符的反向情况(基类不是抽象的并且有对象)。
让我说我有:
class Base:
{
public:
Base(int m1, string m2);
virtual ~Base();
int GetM1()const;
string GetM2()const;
virtual bool operator<(const Base& base)const;
private:
int m1;
string m2;
};
我想做这样的事情:
class Derived: public Base
{
public:
Derived(string member);
~Derived();
virtual bool operator<(const Base& base)const; // is this possible(without cast)???
};
由于
答案 0 :(得分:2)
是的,这是可能的。 Derived
opererator将在以下代码中使用:
Base b;
Derived d;
if (d < b) {
...
}
您还可以使用Base
派生的其他类,例如Derived1
,并将使用它:
Derived1 d1;
Derived d;
if (d < d1) {
...
}