#include <iostream>
using namespace std;
class Shape{
protected:
double area;
public:
virtual double calculateArea() = 0; //纯虚函数,定义成抽象类,不能实例化
void displayArea(){
cout << "Area: " << area << endl;
}
};
class Point : public Shape{
public:
Point(double x = 0.0, double y = 0.0){
area = 0.0;
}
double calculateArea(){ //具体实现
return 0.0;
}
};
class Circle : public Shape{
protected:
double radius;
public:
Circle(double r){
radius = r;
}
double calculateArea(){ //重写基类虚函数
area = 3.14 * radius * radius;
return area;
}
};
class Cylinder : public Circle{
protected:
double height;
public:
Cylinder(double r, double h): Circle(r){
height = h;
}
double calculateArea(){ //重写基类虚函数
area = 2 * Circle::calculateArea() + 2 * 3.14 * radius * height;
return area;
}
};
class Triangle : public Shape{
protected:
double base, height;
public:
Triangle(double b, double h){
base = b;
height = h;
}
double calculateArea(){ //重写基类虚函数
area = 0.5 * base * height;
return area;
}
};
int main(){
Shape* shape;
Circle c(10);
shape = &c; //指定base class指针指向c类对象,实现多态
shape->calculateArea();
shape->displayArea();
Point p;
shape = &p; //指定base class指针指向p类对象,实现多态
shape->calculateArea();
shape->displayArea();
Cylinder cy(10, 20);
shape = &cy; //指定base class指针指向cy类对象,实现多态
shape->calculateArea();
shape->displayArea();
Triangle tr(10,10);
shape = &tr; //指定base class指针指向tr类对象,实现多态
shape->calculateArea();
shape->displayArea();
return 0;
}
代码不是写了吗
将毕设模板发我呗,我写一下
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
可以看看
#include <iostream>
using namespace std;
class Shape{
protected:
double area;
public:
virtual double calculateArea() = 0; //纯虚函数,定义成抽象类,不能实例化
void displayArea(){
cout << "Area: " << area << endl;
}
};
class Point : public Shape{
public:
Point(double x = 0.0, double y = 0.0){
area = 0.0;
}
double calculateArea(){ //具体实现
return 0.0;
}
};
class Circle : public Shape{
protected:
double radius;
public:
Circle(double r){
radius = r;
}
double calculateArea(){ //重写基类虚函数
area = 3.14 * radius * radius;
return area;
}
};
class Cylinder : public Circle{
protected:
double height;
public:
Cylinder(double r, double h): Circle(r){
height = h;
}
double calculateArea(){ //重写基类虚函数
area = 2 * Circle::calculateArea() + 2 * 3.14 * radius * height;
return area;
}
};
class Triangle : public Shape{
protected:
double base, height;
public:
Triangle(double b, double h){
base = b;
height = h;
}
double calculateArea(){ //重写基类虚函数
area = 0.5 * base * height;
return area;
}
};
int main(){
Shape* shape;
Circle c(10);
shape = &c; //指定base class指针指向c类对象,实现多态
shape->calculateArea();
shape->displayArea();
Point p;
shape = &p; //指定base class指针指向p类对象,实现多态
shape->calculateArea();
shape->displayArea();
Cylinder cy(10, 20);
shape = &cy; //指定base class指针指向cy类对象,实现多态
shape->calculateArea();
shape->displayArea();
Triangle tr(10,10);
shape = &tr;
shape->calculateArea();
shape->displayArea();
return 0;
}
多查一下书籍吧。一两个小时就搞定了
1
根据您提供的图片,这是一份关于C++面向对象程序设计的综合实验报告。该实验的目的包括以下几点:
通过这些实验内容,学生可以进一步加深对面向对象程序设计的理解,掌握面向对象编程的基本概念和技巧。同时,通过实验的练习,学生可以提高对C++语言的熟练度和代码设计能力。
希望这个回答对您有帮助。如果您还有其他问题,请随时提问。