117.info
人生若只如初见

c++运算符重载的规则是什么

C++运算符重载的规则如下:

  1. 不能重定义原有的运算符的优先级和结合性。
  2. 不能重载以下运算符:::(作用域解析运算符)、.(成员选择运算符)、.*(成员指针选择运算符)、?:(条件运算符)和sizeof(sizeof运算符)。
  3. 不能重载以下运算符的含义:&&(逻辑与)、||(逻辑或)和,(逗号)。
  4. 重载运算符必须至少有一个操作数是用户定义的类型,不能改变运算符的操作数数量。
  5. 重载运算符可以是成员函数或非成员函数,但是如果是非成员函数,至少有一个操作数必须是用户定义的类型。
  6. 如果重载为成员函数,则操作数数目减一,如果重载为非成员函数,则操作数数目不变。
  7. 不能修改运算符的操作数的语义。
  8. 重载为非成员函数时,参数个数应该与该运算符在所有操作数上的操作数个数相等,如果是成员函数,则参数个数比该运算符在所有操作数上的操作数个数少一个。
  9. 重载运算符不能改变其优先级和结合性。
  10. 重载的运算符必须保留其原始的基本意义,不应该对其进行过度的重载以避免造成困惑和不必要的复杂性。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe457AzsLAAZUA1Y.html

推荐文章

  • c#委托的作用是什么

    C#委托的作用是允许将一个方法作为参数传递给另一个方法,或者将一个方法赋值给一个变量,以便在需要时可以调用这个方法。
    委托可以用于实现回调函数,即在...

  • c#多线程实现的方法是什么

    C#中实现多线程的方法有以下几种: 使用Thread类:可以通过创建Thread类的实例来创建和控制线程。可以使用Thread.Start()方法启动新线程,并且可以通过Thread.Jo...

  • c++中的operator怎么使用

    在C++中,operator(运算符)可以用于定义类的成员函数,重载运算符的操作。
    要使用operator,需要在类中定义一个成员函数,函数名以"operator"开头,后接要...

  • c++中override的用法是什么

    在C++中,override关键字用于明确表示派生类中的成员函数覆盖了基类中的虚函数。它主要有两个作用: 表示派生类中的函数是作为虚函数覆盖了基类中的同名函数。这...

  • php怎么调用别的页面方法

    在PHP中,要调用其他页面的方法,可以使用以下几种方式: 使用include或require语句引入其他页面的代码,然后直接调用该页面的方法。例如: include 'other_page...

  • python怎么创建一个集合

    要创建一个集合,可以使用大括号{}将元素括起来,并使用逗号分隔元素。
    以下是创建一个集合的示例代码:
    # 创建一个空集合
    empty_set = set()

  • c++中class的含义是什么

    在C++中,class是一种用户定义的数据类型,用于定义对象的属性(成员变量)和行为(成员函数)。class可以看作是一种模板或蓝图,用于创建具体的对象。
    在c...

  • golang后端怎么给前端传数据

    Go语言的后端可以使用以下几种方式给前端传递数据: JSON格式:Go语言中可以使用encoding/json包来将数据转换成JSON格式,然后通过HTTP响应发送给前端。前端可以...