![](https://csdnimg.cn/release/download_crawler_static/86321299/bg1.jpg)
1
数据结构课程第一章部分习题解答
第一章 绪论
1-4.什么是抽象数据类型?试用 C++的类声明定义“复数”的抽象数据类型。要求
(1) 在复数内部用浮点数定义它的实部和虚部。
(2) 实现 3 个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的
实部,虚部置为 0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。
(3) 定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。
(4) 定义重载的流函数来输出一个复数。
【解答】
抽象数据类型通常是指由用户定义,用以表示应用问题的数据模型。抽象数据类型由基本的数
据类型构成,并包括一组相关的服务。
//在头文件 complex.h 中定义的复数类
#ifndef _complex_h_
#define _complex_h_
#include <iostream.h>
class comlex {
public:
complex ( ){ Re = Im = 0; } //不带参数的构造函数
complex ( double r ) { Re = r; Im = 0; } //只置实部的构造函数
complex ( double r, double i ) { Re = r; Im = i; } //分别置实部、虚部的构造函数
double getReal ( ) { return Re; } //取复数实部
double getImag ( ) { return Im; } //取复数虚部
void setReal ( double r ) { Re = r; } //修改复数实部
void setImag ( double i ) { Im = i; } //修改复数虚部
complex & operator = ( complex & ob) { Re = ob.Re; Im = ob.Im; } //复数赋值
complex & operator + ( complex & ob ); //重载函数:复数四则运算
complex & operator – ( complex & ob );
complex & operator * ( complex & ob );
complex & operator / ( complex & ob );
friend ostream & operator << ( ostream & os, complex & c ); //友元函数:重载<<
private:
double Re, Im; //复数的实部与虚部
};
#endif
//复数类 complex 的相关服务的实现放在 C++源文件 complex.cpp 中
#include <iostream.h>
#include <math.h>
#include “complex.h”