c++ - 除了赋值运算符,C++ 中哪些运算符不会被继承?

标签 c++ operators

我很难理解:

众所周知,赋值运算符不会被直接继承...我昨天问过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/

相关文章:

C++ 方法继承,返回类型取决于类

c++ - 在 PThreads 或 Windows 中线程退出时调用函数

php - == 字符串运算符

c++ - 启用彻底和详细的 g++ 警告的标志

c++ - 如何简化检查搜索算法返回的迭代器是否有效?

c++ - 多平台环境中的字体

javascript - 为什么 '+' 运算符在 JavaScript 中表现异常?

c++ - &a[x] 在 C 中返回什么类型的值

ios - 逻辑二进制中缀运算符出错

python - Pycharm 与使用相等运算符执行的 None 比较