• 2021-04-14
    所有的运算符都能重载吗?
  • 不能。
    在C++运算符集合中,有一些运算符是不允许被重载的。这种限制是出于安全方面的考虑,可防止错误和混乱。⑴不能改变C++内部数据类型(如int,float等)的运算符。
    ⑵不能重载“.”,因为“.”在类中对任何成员都有意义,已经成为标准用法。⑶不能重载目前C++运算符集合中没有的符号,如#,@,$等。原因有两点,一是难以理解,二是难以确定优先级。
    ⑷对已经存在的运算符进行重载时,不能改变优先级规则,否则将引起混乱。

    内容

    • 0

      以下关于运算符重载的叙述中,正确的是? A: 有的运算,其运算符只能作为友元函数重载 B: 通过运算符重载,可以定义新的运算符 C: 若重载运算符‘+’,则相应的运算符函数名为:+ D: 重载二元运算符时,必须声明两个形参

    • 1

      运算符“.”称为 运算符,运算符“ -> ”称为 运算 符

    • 2

      关于运算符重载,下列说法正确的是( )。 A: 通过重载,可以使运算符应用于自定义的数据类型。 B: 运算符重载可以重新定义运算符的功能 C: 所有的运算符都可以重载 D: 通过重载,可以创造原来没有的运算符 E: 通过重载,可以改变运算符的优先级

    • 3

      下列关于运算符重载的描述中,正确的是()。 A: 运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 B: 一元运算符号能作为成员函数重载 C: 二元运算符重载为非成员函数时,参数表中有一个参数 D: C++中可以重载所有的运算符

    • 4

      ‍关于运算符重载,下列说法正确的是( )。‍ A: 所有的运算符都可以重载 B: 通过重载,可以使运算符应用于自定义的数据类型 C: 通过重载,可以创造原来没有的运算符 D: 通过重载,可以改变运算符的优先级