《课内学习13》
第12章 多态性习题
代码使用说明:
在新建项目里对应的 头文件 或 源文件 里,新建对应的文件,并把代码复制进去即可。(点我参考)
// 1、stdafx.h头文件
#pragma once
#include <iostream>
#include <string>
using namespace std;
// 2、圆环类Ring.h头文件#pragma once
#include"stdafx.h"
#include"Circle.h"
class Ring :public Circle
{
protected:
Circle secondCircle;
public:
Ring(Circle& FirstCircle, Circle& SecondCircle);
Ring(Ring& ring);
~Ring();
double Area();
};
// 3、圆环类Ring.cpp源文件#include"Ring.h"
Ring::Ring(Circle& FirstCircle, Circle& SecondCircle)
:Circle(FirstCircle), secondCircle(SecondCircle)
{
cout << "Constructor of Ring class is called!" << endl;
}
Ring::Ring(Ring& ring)
: secondCircle(ring.secondCircle)
{
Radius = ring.Radius;
cout << "Copy constructor of Ring class is called!" << endl;
}
Ring::~Ring()
{
}
double Ring::Area()
{
return abs(Circle::Area() - secondCircle.Area());//abs()函数返回绝对值
}
// 4、测试项目源文件
#include"Ring.h"
int main()
{
system("color F0");
Circle firstCircle(10), secondCircle(15);
Ring ring(firstCircle, secondCircle);
cout << "圆环面积为: " << ring.Area() << endl;
}