题一::设计矩形类时,成员函数除了包括计算矩形面积的成员函数之外,还包括自定义 构造函数、复制构造函数、析构函数。
#include<iostream>
using namespace std;
class area{ //定义类
public:
area(int newlength=0, int newwidth=0); //自定义构造函数
area(area & p); //复制构造函数
void multiple(int length, int width)
{
cout << length * width << endl;
}
~area () {} //析构函数
private:
int length,width;
};
area :: area(int newlength, int newwidth)
{
length = newlength;
width = newlength;
}
area :: area (area & p)
{
length = p.length;
width = p.width;
}
int main()
{
cout << "请输入矩形的长和宽,中间以空格隔开" << endl;
int length,width;
cin >> length >> width;
area x(length,width);
cout << "矩形的面积为:";
x.multiple(length,width);
return 0;
}
运行截图:
题二:基于题目要求,给出 Complex 类的 UML 类图
#include<iostream>
using namespace std;
class Complex
{
public:
//构造函数重载
Complex(double newreal); //参数为实数时
Complex(double newreal,double newimaginary); //参数为虚数时
//复制构造函数
Complex(const Complex &c); //由于c++标准中不允许向类传递值,因此只能将值改为常量引用
//重载计算函数
void add(Complex &c); //参数为类时
void add(double newreal); //参数为实数时
void add(double newreal,double newimaginary); //参数为实数和虚数时
//输出函数
void show();
private:
double real,imaginary;
};
Complex :: Complex(double newreal,double newimaginary)
{
real = newreal;
imaginary = newimaginary;
}
Complex :: Complex(double newreal)
{
real = newreal;
imaginary = 0;
}
//复制构造函数
Complex :: Complex(const Complex &c)
{
real = c.real;
imaginary = c.imaginary;
}
inline void Complex::add(Complex &c)
{
real += c.real;
imaginary += c.imaginary;
}
inline void Complex::add(double newreal)
{
real += newreal;
}
inline void Complex::add(double newreal,double newimaginary)
{
real += newreal;
imaginary += newimaginary;
}
inline void Complex::show()
{
if(imaginary == 0)
cout << real << endl;
else
cout << real << "+" << imaginary << "i" << endl;
}
int main()
{
Complex c1(3,5);
Complex c2=4.5;
c1.add(c2);
c1.show();
return 0;
}
运行结果截图: