#include<iostream>
using namespace std;
class CFigure{
public:
double x, y;
public:
void SetDim(double i, double j = 0.0){
x = i;
y = j;
}
virtual void GetShowArea(){
cout << "无法计算面积" << endl;
}
};
class CTrangle :public CFigure{
public:
void GetShowArea(){
cout << "三角形:底边长" << x << "高:" << y << "面积:" << 0.5*x*y << endl;
}
};
class CRect : public CFigure{
void GetShowArea(){
cout << "矩形:长:" << x << "宽:" << y << "面积:" << x*y << endl;
}
};
class CCircle :public CFigure{
public:
void GetShowArea(){
cout << "圆形:半径" << x << "面积:" << 3.15159 *x * x << endl;
}
};
int main(){
cout << "使用虚函数实现运行时多态" << endl;
CFigure *figure;
CTrangle triangle;
CRect rect;
CCircle circle;
figure = ▵
figure->SetDim(8.0, 5.0);
figure->GetShowArea();
figure = ▭
figure->SetDim(10.0, 5.0);
figure->GetShowArea();
figure = &circle;
figure->SetDim(10.0);
figure->GetShowArea();
getchar();
getchar();
return 0;
}
using namespace std;
class CFigure{
public:
double x, y;
public:
void SetDim(double i, double j = 0.0){
x = i;
y = j;
}
virtual void GetShowArea(){
cout << "无法计算面积" << endl;
}
};
class CTrangle :public CFigure{
public:
void GetShowArea(){
cout << "三角形:底边长" << x << "高:" << y << "面积:" << 0.5*x*y << endl;
}
};
class CRect : public CFigure{
void GetShowArea(){
cout << "矩形:长:" << x << "宽:" << y << "面积:" << x*y << endl;
}
};
class CCircle :public CFigure{
public:
void GetShowArea(){
cout << "圆形:半径" << x << "面积:" << 3.15159 *x * x << endl;
}
};
int main(){
cout << "使用虚函数实现运行时多态" << endl;
CFigure *figure;
CTrangle triangle;
CRect rect;
CCircle circle;
figure = ▵
figure->SetDim(8.0, 5.0);
figure->GetShowArea();
figure = ▭
figure->SetDim(10.0, 5.0);
figure->GetShowArea();
figure = &circle;
figure->SetDim(10.0);
figure->GetShowArea();
getchar();
getchar();
return 0;
}