华清 c++ day5 9月12

#ifndef _HOMEWORK_H_
#define _HOMEWORK_H_

#include 
#include 

using namespace std;

//定义一个图形类
class Shap
{
protected:
	//周长
	double perimeter;
	//面积
	double area;
public:
	//无参构造
	Shap();
	//析构函数
	~Shap();
};

//圆类
class Circle :public Shap
{
private:
	double radius;
public:
	//无参构造
	Circle();
	//有参构造
	Circle(double r);
	//拷贝构造
	Circle(const Circle& other);
	//获取周长
	double getPerimeter()const;
	//获取面积
	double getArea()const;
};

//矩形类
class Rect :public Shap
{
private:
	double width;
	double length;
public:
	//无参构造
	Rect();
	//有参构造
	Rect(double l, double w);
	//拷贝构造
	Rect(const Rect& other);
	//获取周长
	double getPerimeter()const;
	//获取面积
	double getArea()const;
};

#endif // !_HOMEWORK_H_
#include "homework.h"

Shap::Shap():perimeter(0),area(0)
{
	cout << "Shap::无参构造" << endl;
}

Shap::~Shap()
{
	cout << "Shap::析构函数" << endl;
}

Circle::Circle():radius(0)
{
	cout << "Cricle::无参构造" << endl;
}

Circle::Circle(double r):radius(r)
{
	cout << "Circle::有参构造" << endl;
	perimeter = 2 * 3.1415926 * radius;
	area = 3.1415926 * radius * radius;
}

Circle::Circle(const Circle& other):radius(other.radius)
{
	cout << "Circle::拷贝构造函数" << endl;
	perimeter = 2 * 3.1415926 * radius;
	area = 3.1415926 * radius * radius;
}

double Circle::getPerimeter() const
{
	return perimeter;
}

double Circle::getArea() const
{
	return area;
}

Rect::Rect():width(0),length(0)
{
	cout << "Rect::无参构造" << endl;
}

Rect::Rect(double l, double w):length(l),width(w)
{
	cout << "Rect::有参构造" << endl;
	perimeter = 2 * (length + width);
	area = length * width;
}

Rect::Rect(const Rect& other):width(other.width),length(other.length)
{
	cout << "Rect::拷贝构造函数" << endl;
	perimeter = 2 * (length + width);
	area = length * width;
}



double Rect::getPerimeter() const
{
	return perimeter;
}

double Rect::getArea() const
{
	return area;
}
#include "homework.h"

int main()
{
    Circle c1(5);
    cout << "c1: Perimeter = " << c1.getPerimeter() << ", Area = " << c1.getArea() << endl;

    Rect r1(4, 6);
    cout << "r1: Perimeter = " << r1.getPerimeter() << ", Area = " << r1.getArea() << endl;

    Circle c2(c1);
    cout << "c2: Perimeter = " << c2.getPerimeter() << ", Area = " << c2.getArea() << endl;

    Rect r2(r1);
        cout << "r2: Perimeter = " << r2.getPerimeter() << ", Area = " << r2.getArea() << endl;

	return 0;
}

面试题 - GitMind

C++ - day4 - GitMind

在线思维导图 - GitMind

你可能感兴趣的:(c++,开发语言,算法)