实践练习三

题一::设计矩形类时,成员函数除了包括计算矩形面积的成员函数之外,还包括自定义 构造函数、复制构造函数、析构函数。

#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;
} 

运行结果截图:

posted @ 2018-04-08 22:15  这名必没人用  阅读(186)  评论(3编辑  收藏  举报