我很难理解:
众所周知,赋值运算符不会被直接继承...我昨天问过LINK
AFAIK 以下非虚拟运算符也不会被继承:
operator& //unary user defined
operator* //unary user defined
所有其他运算符都将被继承(如果我错了请纠正我)
哪些虚拟运营商不会被继承? (虚拟说明符有什么区别吗?)
最佳答案
严格来说,一切都是遗传的。但是,以下内容将通过隐式声明的版本(或用户声明的版本,如果用户声明了它们)隐藏在派生类中:
- 默认构造函数:
T()
- 析构函数:
~T()
- 复制构造函数:
T(T const &)
(有时没有const
) - 复制赋值运算符:
T & operator=(T const &)
(有时没有const
) - 移动构造函数:
T(T &&)
- 移动赋值运算符:
T & operator=(T &&)
operator&
和 operator*
像其他所有东西一样被继承。 virtual
声明没有区别。
关于c++ - 除了赋值运算符,C++ 中哪些运算符不会被继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870481/