C++所有的运算符都能重载吗 ?
参考答案:
在C++中,大多数运算符都可以被重载,但不是所有的运算符都可以。以下是一些不能被重载的运算符:
::
(域解析运算符).*
(成员指针访问运算符)?:
(条件运算符)sizeof
(它不是一个运算符,但也不能被重载)::new
和::delete
(它们不是运算符,但也不能被重载,尽管你可以重载全局的new
和delete
操作符)
此外,&
(取地址运算符)和*
(解引用运算符)在函数重载时有一些限制。你不能将这两个运算符重载为一个成员函数,但你可以将它们重载为全局函数或友元函数。
需要注意的是,尽管你可以重载运算符,但并不意味着你应该滥用这个功能。重载运算符应该谨慎使用,只在逻辑上合理且不会导致代码混淆的情况下才应该进行。