云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C++程序设计实验6

C++程序设计实验6

  • 62 次阅读
  • 3 次下载
  • 2025/6/30 5:32:14

实验6运算符重载

实验目的

掌握运算符重载的规则;

掌握运算符成员函数与运算符友元函数的实现及应用; 学会定义类中单目和双目运算符的重载函数;

理解重载运算符的作用,学会对典型的运算符进行重载。

实验学时

本次实验需要2个学时。

实验要求

实验上机之前,根据实验内容要求,自行设计编写程序,完成预习报告。 实验上机时调试并修正程序。

当次上机结束前分析错误原因并给出实验结论,提交实验报告。

实验内容 1. 基础部分

(1) 定义复数类complex,包括私有数据成员实部real和虚部image。定义该 类的构造,拷贝构造,析构函数。为该类重载运算符 +,-(友元函数),前置和 后置++,--(成员函数),插入符和提取符VV,>> (友元函数)。在main函数里 定义复数对象,测试重载的这些运算符。

2. 进阶部分

(2) 设计一个 mystring类,包括数据成员Char * pstr;和int Iength;通过运算 符重载实现字符串的输入 >>、输出 <<、连接+=、赋值=、关系运算(==、!=、>、 <)、下标[]等运算。

/*( 1)定义复数类CamPIeX,包括私有数据成员实部 real和虚部image。定义该类的构造, 拷贝构造,析构函数。

为该类重载运算符+,-(友元函数),前置和后置++,--(成员函数),插入符和提取符VV ,? (友元函数)。

在main函数里定义复数对象,测试重载的这些运算符。 #in CIUdeViaStream> #in CIUdeVStri ng>

USing n amespace std; class Complex { public:

Complex(i nt real1=0,i nt image1=0) :real(real1),image(image1){} ~Complex() {};

friend Complex OPerator+(c OnSt Complex &a1, ConSt Complex &a2); friend Complex OPeratOr-(C OnSt Complex &a1, ConSt Complex &a2); Complex OPerator++(); Complex OPerator++(i nt); Complex OPerator--(); Complex OPerator--(i nt);

friend OStream& OPerator<<(ostream& os, ConSt Complex&a3); friend istream& OPerator>>(istrea m& is. Complex&a3);

private: int real; int image; };

Complex OPerator+(c OnSt Complex &a1, ConSt Complex &a2) {

retur n Complex(a1.real + a2.real, a1.image + a2.image); }

Complex OPeratOr-(C OnSt Complex &a1, ConSt Complex &a2) {

return Complex(a1.real - a2.real, a1.image - a2.image); }

Complex Complex::OPerator++() { ++real; ++image; return *this; }

Complex Complex::OPerator++(i nt) {

Complex a = *this; ++(*this); return a;

Complex ComPIeX::oPerator--() { --real; --image; return *this;

}

Complex Complex::OPerator--(i nt) {

Complex a = *this; --(*this); return *this; }

OStream& OPerator<<(ostrea m& os, ConSt Complex& a3) {

os<< a3.real << \return os; }

istrea m& OPerator>>(istream& is, Complex&a3) {

is >> a3.real >> a3.image; return is; }

int mai n() {

Complex a4(4,5), a5(6,7),A,B; cout << \cout << \

cout << \请重新为a4,a5对象输入数据: Cin >> a4;

I!

Cin >> a5;

CoUt << \重新输入后 a4: \CoUt << \重新输入后 a5: \A = a4 + a5;

cout << \重载修改后加法 A:\cout << A << en dl; A = a4 - a5;

cout << \重载修改后减法 A:\cout << A << en dl;

cout <<\重载修改后 a4 前置 ++:\cout <<\重载修改后 a5 后置 ++:\cout << \重载修改后再次修改的 a4前置--:\cout << \重载修改后再次修改的 a5后置--:\return 0;

}

(2)设计一个 mystring类,包括数据成员 int Iength;通过运算符重载实现字符串的输入

Char * pstr;和

>>、输出 <<、连接+=、赋值=、

关系运算(==、!=、>、<)、下标[]等运算。 #i nclude #in clude USing n amespace std; class mystri ng { public:

mystri ng(char *p); ~mystri ng() { free(pstr); }

mystri ng& OPerator=(mystri ng& s);

搜索更多关于: C++程序设计实验6 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验6运算符重载 实验目的 掌握运算符重载的规则; 掌握运算符成员函数与运算符友元函数的实现及应用; 学会定义类中单目和双目运算符的重载函数; 理解重载运算符的作用,学会对典型的运算符进行重载。 实验学时 本次实验需要2个学时。 实验要求 实验上机之前,根据实验内容要求,自行设计编写程序,完成预习报告。 实验上机时调试并修正程序。 当次上机结束前分析错误原因并给出实验结论,提交实验报告。 实验内容 1. 基础部分 (1) 定义复数类complex,包括私有数据成员实部real和虚部image。定义该 类的构造,拷贝构造,析构函数。为该类重载运算符 +,-(友元函数),前置和 后置++,--(成员函数)

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com