第10讲运算符重载与类型转换.PDFVIP

  • 4
  • 0
  • 约1.81万字
  • 约 41页
  • 2017-12-20 发布于天津
  • 举报
第10讲运算符重载与类型转换.PDF

程序设计II 第10讲运算符重载与类型转换 计算机学院黄章进 zhuang@ustc.edu.cn 内容 • 10.1 基本概念 • 10.2 输入和输出运算符 • 10.3 算术和关系运算符 • 10.4 赋值运算符 • 10.5 下标运算符 • 10.6 自增和自减运算符 • 10.7 成员访问运算符 • 10.8 函数调用运算符 • 10.9 类型转换运算符 2 基本概念 重载运算符函数的声明形式: 返回类型 operator 运算符 (形参表) { // 函数体 } 3 基本概念  只能重载已有的运算符 不允许重载作用域(::) 、成员访问( .*与. ) 、 和条件(?:)等4个运算符 有四个运算符(+, -, *, )既是一元运算符也是 二元运算符 重载运算符的优先级和结合律和内置运算 符一致 不能改变运算对象数量,且重载运算符的 运算对象至少有一个是类类型 // error: cannot redefine the built-in operator for ints int operator+(int, int); 4 基本概念 重载运算符函数的形参数与运算符的运算 对象数一样多 除了函数调用运算符operator()外,其他重载 运算符不能含有默认实参 运算符可以重载为类的非静态成员函数 成员运算符函数的(显式)形参数比运算符 的运算对象数少1个 第一个(左侧)运算对象绑定到隐式的this 运算符函数也可以重载为非成员函数 至少有一个类类型的形参 5 直接调用重载的运算 符函数 能像调用普通函数一样直接调用非成 员运算符函数 // equivalent calls to a nonmember operator function 基 data1 + data2; // normal expression 本 operator+(data1, data2); // equivalent function call 概 也可以显式地调用成员运算符函数 念 data1 += data2; // expression-based call data1.operator+=(data2); // equivalent call to a member operator function 6 有些运算符不应被重载 使用重载运算符本质上是函数调用, 内置运算符指定的运算对象的求值顺

文档评论(0)

1亿VIP精品文档

相关文档