C++3实验报告.doc
文本预览下载声明
《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
显示全部