教你实现一对一直播系统源码自定义图形层次系统

实现一对一直播系统源码自定义图形层次系统使用的相关代码

#include<iostream>
#include<iomanip>
const float pai=3.14;
using namespace std;
class Shape
{
public:
virtual float has_s()=0;
virtual float has_v()=0;
};
class Circle:public Shape
{
private:
int r;
public:
Circle(){}
Circle(int x){r=x;}
void input(int a){r=a;}
virtual float has_s();
virtual float has_v(){return 0;}
};
float Circle::has_s()
{
return r*r*pai;
}
class Square:public Shape
{
private:
int a;
public:
Square(){}
Square(int);
void input(int x){a=x;}
//virtual void input(int x)=0;
virtual float has_s(){return a*a;}
virtual float has_v(){return 0;}
int get_a();
};
Square::Square(int x)
{
a=x;
}
int Square::get_a()
{
return a;
}
class Cube:public Square
{
public:
Cube(){}
Cube(int x):Square(x){} //cube 和 square 之间赋值用构造函数还是成员函数input
virtual float has_s()
{
int m=Square::get_a();
return m*m*6;
}
virtual float has_v()
{
int n=Square::get_a();
return n*n*n;
}
//Square input();
};
class Rectangle:public Shape
{
private:
int a;
int b;
public:
Rectangle(){}
Rectangle(int x,int y){a=x;b=y;}
void input(int x,int y){a=x;b=y;}
virtual float has_s(){return a*b;}
virtual float has_v(){return 0;}
};
int main()
{
Shape* p[4];
cout<<"请输入圆的半径,它将也是正方形的边长、立方体的边长、矩形的宽"<<endl;
int a;
cin>>a;
p[0]=new Circle(a);
cout<<"s of a circle:"<<std::left<<setw(5)<<p[0]->has_s()<<" v of a circle:"<<p[0]->has_v()<<endl;
p[1]=new Square(a);
cout<<"s of a square:"<<std::left<<setw(5)<<p[1]->has_s()<<" v of a square:"<<p[1]->has_v()<<endl;
p[2]=new Cube(a);
cout<<"s of a cube:"<<std::left<<setw(5)<<p[2]->has_s()<<" v of a cube:"<<p[2]->has_v()<<endl;
cout<<"请输入矩形的‘长’"<<endl;
int b;
cin>>b;
p[3]=new Rectangle(a,b);
cout<<"s of a rectangle:"<<std::left<<setw(5)<<p[3]->has_s()<<" v of a rectangle:"<<p[3]->has_v()<<endl;
return 0;
//int
//p[1]

}

 

编写一个程序,定义抽象基类Shape,由它派生出3个派生类:Circle(圆形),Square(正方形),Rectangle(矩形)。Square正方形派生出了cube正方体。
用虚函数分别计算几种图形面积或体积,并求用基类指针数组,使它每一个元素指向一个派生类对象。

1.继承也可以有多继承,一个派生类继续向下继承,成为另一个类的基类。
这样情况下,最低端的的派生类仍可以拥有比其高几级的基类的成员,可以直接调用public部分,也含有基类私有成员。

2.多重继承运用纯虚函数要在基类中使用关键字virtual,并使函数=0,表明其在基类中不实现,如果其在派生类中也不实现,则也写成=0。
以上就是 实现一对一直播系统源码自定义图形层次系统使用的相关代码,更多内容欢迎关注之后的文章

上一篇:大话设计模式源代码


下一篇:Apache 增加多域名支持,解决网站只能在根目录的问题.