跳到主要内容

C++所有的运算符都能重载吗 ?

参考答案:

在C++中,大多数运算符都可以被重载,但不是所有的运算符都可以。以下是一些不能被重载的运算符:

  1. ::(域解析运算符)
  2. .*(成员指针访问运算符)
  3. ?:(条件运算符)
  4. sizeof(它不是一个运算符,但也不能被重载)
  5. ::new::delete(它们不是运算符,但也不能被重载,尽管你可以重载全局的newdelete操作符)

此外,&(取地址运算符)和*(解引用运算符)在函数重载时有一些限制。你不能将这两个运算符重载为一个成员函数,但你可以将它们重载为全局函数或友元函数。

需要注意的是,尽管你可以重载运算符,但并不意味着你应该滥用这个功能。重载运算符应该谨慎使用,只在逻辑上合理且不会导致代码混淆的情况下才应该进行。