文档详情

名师c++运算符重载课件.ppt

发布:2017-06-28约6.03千字共48页下载文档
文本预览下载声明
一、 引言 ★ cin和cout分别是istream和ostream类 的对象 ◆ 在类库提供的头文件中已经对“”和 “”进行了重载,使之成为流插入运 算符和流输出运算符, 能用来输入和 输出C++标准类型的数据 一、 引言 2、 用户自定义类型的数据,是不能直接 用“”和“”来输入和输出的 ★ 如果想用它们来输入和输出自定义的 类型的数据,必须对它们进行重载 二、 格式 1、 重载的函数形式如下 ★ istream operator(istream, 自定义类) ★ ostream operator(ostream, 自定义类) 二、 格式 2、 说明 ★ 重载运算符“”函数的第一个参数和 函数的类型都必须是istream类型, 而第二个参数是要进行输入操作的类 ◆ 重载运算符“”的情况同上类似 二、 格式 ★ 因此,只能将重载“”和“”函数作为 友元函数和普通函数, 而不能够将它们 定义为成员函数 ◆ 原因:后面分析 三、 重载流插入运算符 1、 典例分析:例10.7(P331) ★ 在例10.2的基础上,用重载的“”输出 复数 #include iostream using namespace std; class Complex { public: Complex(){ real=0,image=0 }; Complex(double r,double i) { real=0,image=0 }; // 构造函数的重载 Complex operator +(Complex c2); // 声明重载运算符的“+”函数 friend ostream operator(ostream, Complex) // 运算符“”重载为友元函数 protected: double real; // 实部 double image; // 虚部 }; ostream operator(ostream output, Complex c) // 定义运算符“”重载函数 // output是ostream对象的引用,该形参名是 用户任意起的 { output“(”c.real“+”c.image “i)”endl; return output; } int main() { Complex c1(2,4),c2(6,10),c3; c3=c1+c2; // 运算符+用于复数运算 coutc3; return 0; } 第十章 运算符重载 ★ 运算符重载的方法和规则 ★ 重载双目运算符 ★ 重载单目运算符 第五节 重载双目运算符 一、 复习:双目运算符 ★ 双目运算符有两个操作数,通常在运算 符的左右两侧,如3+5,a=b,i10等等 ◆ 是C++最常用的运算符 二、 双目运算符的典例 ★ 例10.4(P324) ◆ 定义一个字符串类String,用来存放不 定长的字符串,重载运算符“==”,“”, 和“”,用于两个字符串的等于、小于 和大于的比较运算 二、 双目运算符的典例 1、 先编写出最简单的程序框架 ★ 这是一个可供运行的程序,编写和调试 都比较容易 #include iostream using namespace std; cla
显示全部
相似文档