派生运算符<接收 Base 对象作为参数
Derived operator< receiving Base object as parameter
我知道派生类"是"基类,因此您始终可以将派生对象传递给基成员函数。现在,我想知道比较运算符的相反情况(基类不是抽象的,并且有对象)。
假设我有:
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)???
};
谢谢
是的,这是可能的。Derived
操作符将在如下代码中使用:
Base b;
Derived d;
if (d < b) {
...
}
你也可以有一些从Base
派生的其他类,比如Derived1
,它将被使用:
Derived1 d1;
Derived d;
if (d < d1) {
...
}
相关文章:
- 将值从指针复制到常量对象参数
- 隐式对象参数和此指针
- 将对象传递给 Java C++与使用 JNI 逐个设置对象参数
- 如何通过对象参数从指针矢量中删除对象和指针
- 是否有一种方法可以根据派生的可能性值范围限制对象参数
- 从从可调用参数创建的线程对象参数移动构造 C++11 线程
- 为什么我不能通过传入的类对象参数杀死 pthread。
- 无法异步启动带有对象参数的函数
- 为什么在 std::transform 中使用函数对象参数失败并且需要 lambda 表达式
- 实例对象如何查看函数的对象参数的私有成员?
- 在没有对象参数编译器错误的情况下调用非静态成员函数
- 具有常数对象参数的类函数
- 模板功能没有对象参数专业
- 为什么不能在对象参数前面使用常量?
- 具有不同签名的函数对象参数的函数
- 调用非静态成员函数,没有对象参数错误
- 如何从 C# 调用具有 void* 回调和对象参数的 C++ Dll 中的函数
- 对函数使用对象参数或不使用参数
- c++错误:调用没有对象参数的非静态成员函数
- c++对象参数:多态性,值语义,对象生命周期