C++ 运算符重载
来源:互联网 发布:金融产品设计书籍知乎 编辑:程序博客网 时间:2024/04/29 21:20
运算符重载特性:
(1) 除了类属关系运算符"."、成员指针运算符".*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。
(2) 重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。
(3) 运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。
(4) 重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。
(5) 运算符重载不能改变该运算符用于内部类型对象的含义。它只能和用户自定义类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时。
(6) 运算符重载是针对新类型数据的实际需要对原有运算符进行的适当的改造,重载的功能应当与原有功能相类似,避免没有目的地使用重载运算符。
(7)重载运算符的函数不能有默认的参数,否则就改变了运算符的参数个数,与前面第3点相矛盾了;
(8)重载的运算符只能是用户自定义类型,否则就不是重载而是改变了现有的C++标准数据类型的运算符的规则了,会引会天下大乱的;
(9)用户自定义类的运算符一般都必须重载后方可使用,但两个例外,运算符“=”和“&”不必用户重载;
(10)运算符重载可以通过成员函数的形式,也可是通过友元函数,非成员非友元的普通函数。
2.函数重载过程
<函数类型> operator <运算符>(<参数表>)
{
<函数体>
}
0 0
- C++-运算符重载
- [C++]重载运算符
- C#:运算符重载
- c++-++运算符重载
- C++:重载运算符
- 运算符重载(C++)
- [c++]运算符重载
- 【C++】运算符重载
- C++--------------------------------------------运算符重载
- C#:运算符重载
- C++:运算符重载
- C++:运算符重载
- C#:运算符重载
- [C++]运算符重载
- 【c++】运算符重载
- C++:运算符重载
- C#:运算符重载
- C++:运算符重载
- final关键字
- Nginx 多个版本都适用的伪静态配置
- CodeForces 492B Vanya and Lanterns(水题)
- 在windows下编译nginx
- HDU 2203 亲和串(多个字符串函数的运用)
- C++ 运算符重载
- 二叉树路径问题
- 超出文本显示省略号(包括一行和多行)
- The QT container: QMap, QHash, QList
- 【集训队作业】COUNTARI
- Android 4.4 不休眠+不锁屏+默认中文+去除导航栏
- 查看SQL SERVER中指定数据库的每个表的数据量和每行记录所占用的空间
- WordPress判断是否首页
- Android RelativeLayout和LinearLayout性能分析