C++ch4-运算符重载-4学时教程.ppt
文本预览下载声明
C++面向对象程序设计教程;4.1 运算符重载的概念;运算符重载的概念;例4.1 通过函数实现复数相加示例。
// 声明复数数
class Complex
{
private:
// 数据成员
double real; // 实部
double image; // 虚部
public:
// 公有函数
Complex(double r = 0, double i = 0): real(r), image(i){ }// 构造函数
void Show() const; // 输出复数
static Complex Add(const Complex z1, const Complex z2);
// 复数加法
};
void Complex::Show() const // 输出复数
{
if (image 0) cout real image i endl; // 虚部为负
else if (image == 0) cout real endl; // 虚部为0 else cout real “+” image “i” endl; // 虚部为负
}
……;例4.1 通过函数实现复数相加示例。
……
Complex Complex::Add(const Complex z1,const Complex z2)
{
Complex z(z1.real + z2.real, z1.image + z2.image);// 定义复数对象
return z; // 返回复数
}
int main() // 主函数main()
{
Complex z1(2, 3), z2(6, -5), z3; // 定义复数对象
z1.Show(); // 输出z1
z2.Show(); // 输出z2
z3 = Complex::Add(z1, z2); // z3=z1+z2
z3.Show(); // 输出z3
system(PAUSE); // 输出系统提示信息
return 0; // 返回值0, 返回操作系统
};运算符重载;运算符重载——语法格式;例4.2 通过运算符重载实现复数相加的示例。
#include iostream // 编译预处理命令
using namespace std; // 使用命名空间std
// 声明复数数
class Complex
{
private:
// 数据成员
double real; // 实部
double image; // 虚部
public:
// 公有函数
Complex(double r = 0, double i = 0): real(r), image(i){}// 构造函数
void Show() const; // 输出复数
friend Complex operator+(const Complex z1,const Complex z2)
{ return Complex(z1.real + z2.real, z1.image + z2.image); }
};
void Complex::Show() const // 输出复数
{
if (image 0) cout real image i endl; // 虚部为负
else if (image == 0) cout real endl; // 虚部为0
else cout real + image i endl; // 虚部为负
}
……;例4.2 通过运算符重载实现复数相加的示例。
……
// int operator+(int a, int b){ return a + b; }
// 错,重载运算符的函数的参数不能全部是C++的标准类型
int main() // 主函数main()
{
Complex z1(2, 3), z2(6, -5), z3; // 定义复数对象
z1.Show(); // 输出z1
z2.Show(); // 输出z2
z3 = z1 + z2; // 进行复数加法运算
z3.Show(); // 输出z3
system(PAUSE); // 输出系统提示信息
return 0; // 返回值0, 返回操作系统
};4.2 运算符重载方式;运算符重载方式 ;补充:友元的提出;补充:友元分类及作用;补充:友元函数;运算符重载;4.2.1 运算符重载为类的成员函数; 运算符重载;class
显示全部