何时以及为什么父类操作符重载隐藏在子类中
When and why are superclass operator overloads hidden in a subclass?
我知道,如果子类提供了一个操作符方法(让我们说赋值),这隐藏了父类中的操作符,除非你显式地做using superclass::operator=
,但在我的代码中,我看到的情况下,我需要这样做,即使子类做不实现任何操作符。
是否有一个具体的情况列表,其中操作符(和其他方法,如果它是一个一般情况下)将被隐藏,在哪里他们不会?
相关:c++中operator=的继承问题。
operator=
是唯一由编译器生成的成员函数(除了构造函数和析构函数),因此也是唯一一个即使在派生类中没有用户声明也隐藏的函数。
相关文章:
- 继承期间显示未知行为的子类
- 通过指向指针数组的指针访问子类的属性
- 从父类方法返回子类对象
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 将父类对象强制转换为子类的问题
- 避免在C++中重复子类定义
- 将QOpenGLWidget子类转换为使用Metal而不是OpenGL的子类是否可行?
- 如何初始化矢量的模板化子类
- C++ 继承:将子类传递给需要基类的函数并获取子类行为
- 有没有办法按值将纯抽象类的所有子类传递给 C++ 中的函数?
- 使用子类覆盖基类中定义的函数
- 子类地址等于虚拟基类地址?
- 将子类方法声明为基类的友元
- 隐藏子类中的变量
- 是否可以覆盖(隐藏)非虚拟方法,但仍然从子类显式调用它
- 子类隐藏父类的构造函数
- CBT_Hook、HCBT_MINMAX事件或子类化以隐藏对话框窗口.C++在Windows上
- 何时以及为什么父类操作符重载隐藏在子类中
- C++子类重载乘法运算符隐藏基重载取消引用运算符
- 隐藏从子类隐式派生自(c++)的方法