21xrx.com
2024-11-22 13:29:03 Friday
登录
文章检索 我的文章 写文章
C++中不支持重载的运算符
2023-06-29 22:03:41 深夜i     --     --
C++ 重载 运算符

C++是一门强大的编程语言,但是有些运算符并不支持重载。在C++中,一些算术运算符和比较运算符都可以通过函数重载进行重载,从而实现自定义的操作。然而,有几个运算符是不能重载的,其中包括三元运算符(? :)、作用域运算符(::)、sizeof运算符和成员选择运算符(.* 和 ->*)。

首先,三元运算符(? :)是一种特殊的运算符,用于将一个表达式转换为另一个表达式。它通常用于if-else语句中,但是它不能重载。因为它的操作符是既定的,无法自定义操作。

其次,作用域运算符(::)用于访问类的静态成员和名称空间。此外,它还用于访问位于不同名称空间中的函数和变量。由于它本质上是用于名称空间的,而不是类的成员函数,因此它不支持重载。

第三,sizeof运算符是用于返回数据类型的大小的运算符。由于它是一个编译时运算符,并且返回的是固定值,所以它不能重载。

最后,成员选择运算符(.* 和 ->*)是用于访问类的成员函数和成员指针的运算符。它们是相对复杂的运算符,因此不支持重载。这也是为什么我们不能使用自定义的方案来重载这些运算符。

虽然这些运算符不能被重载,但是C++中有很多其他的运算符可以进行重载。了解这些限制以及什么可以被重载非常重要,因为它可以帮助我们在编写高效的程序时做出正确的决策。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复