21xrx.com
2024-11-25 13:55:56 Monday
登录
文章检索 我的文章 写文章
哪些运算符C++中不允许重载?
2023-06-30 14:10:18 深夜i     --     --
运算符 重载 C++ 不允许

在C++中,操作符重载是一种强大的特性,可以允许我们定义自己的类来模拟内置类型。但是,并不是所有的操作符都可以重载。以下是那些不允许重载的运算符。

1. 作用域解析运算符 (::)。这个运算符用于访问全局作用域或定义在外部命名空间中的标识符。由于这是一个编译器解析名称的重要方式,因此不能被重载。

2. sizeof 运算符。sizeof 运算符在编译时计算一个类型或一个变量的大小。由于其计算时机是在编译期间,不涉及到运行时状态,因此也不能被重载。

3. 三目运算符 (?:)。这是一个带有三个操作数的运算符,用于进行条件判断并选择不同的操作。由于其语法是固定的,不能被重载。

4. 类型转换运算符。这包括将自定义类型转换为其他类型的运算符,如 int(),double()等。然而,我们可以为我们的类定义类型转换函数(operator 转换类型 ())。

5. 成员访问运算符 (.) 和指针成员访问运算符 (->)。这些运算符由编译器在编译时处理,以便在运行时访问类的成员变量和方法。

总之,对于这些运算符,我们不能直接通过重载这些运算符来改变它们的行为。但是,我们可以通过定义其他运算符或函数来实现我们期望的功能。

  
  

评论区

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