文档详情

C++3实验报告.doc

发布:2017-01-02约字共12页下载文档
文本预览下载声明
《C++面相对象程序》课程实验报告 (I类) 实验3 函数重载与运算符重载 3.1 实验目的 1.学习函数和操作符重载的使用方法。 2.理解函数和运算符重载的作用和意义。 3.掌握类运算符和友元运算符重载的定义和使用。 4.掌握常用运算符的重载。 3.2 实验工具与准备工作 在开始实验前,应回顾或复习相关内容。 需要一台主算机,其中安装有Visual C++ 6.0、Visualstudio 2010等集成开发环境软件。 3.3 实验内容 1.先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。 // 文件名: main.cpp #include iostream // 预处理命令 using namespace std; // 使用标准命名空间std // 数组类 class Array { private: // 数据成员: int *elem; // 数组元素存储空间 int size; // 数组元素个数 public: // 公有函数: Array(int a[], int sz): elem(a), size(sz){ } // 构造函数 int GetSize(){ return size; } // 返回数组元素个数 int operator[](int pos){ return elem[pos - 1]; } // 重载下标运算符[] }; int main(void) // 主函数main(void) { int a[] = {1, 2, 3, 4, 5}; // 定义数组a Array obj(a, 5); // 定义数组对象 obj[1] = 8; // 为数组元素赋值 for (int i = 1; i = obj.GetSize(); i++) // 依次输出数组各元素之值 cout obj[i] ; // 输出第i个元素 cout endl; // 换行 system(PAUSE); // 调用库函数system( ),输出系统提示信息 return 0; // 返回值0, 返回操作系统 } 程序运行结果正确为: 2.程序填空。下面程序主要实现描述复数的类Complex的加法运算符+重载,试完成程序。 // 文件名: main.cpp #include iostream // 预处理命令 using namespace std; // 使用标准命名空间std // 复数类 class Complex { private: // 数据成员: double realPart; // 实部 double imagePart; // 虚部 public: // 公有函数: Complex(double real = 0, double image = 0): realPart(real), imagePart(image){ } // 构造函数 double GetRealPart() const{ return realPart; } // 返回实部 double GetImagePart() const{ return imagePart; } // 返回虚部 Complex operator+(const Complex a) const // 重载加法运算符+ { Complex b; // 定义复数对象 b.realPart = this-realPart + a.realPart; // 和的实部 b.imagePart = this-imagePart + a.imagePart; // 和的虚部 return b ; // 返回和 } }; int main(void) // 主函数main(void) { Complex a(1, 2), b(2, 6), c; // 定义复数对象 c = a + b; // 复数加法运算 cout a= a.GetRealPart() + a.GetImagePart() i endl; // 显示a cout b= b.GetRealPart() + b.GetImagePart() i endl; // 显示b cout c= c.GetRealPart() + c.GetImag
显示全部
相似文档