c++,定义基类和派生类,求长方体的表面积和体积。一,基类的指针指向派生类的对象 二,在基类中定义了虚函数。这样用基类的指针去访问同名函数时 ,即可访问派生类的成员函数

#include<iostream>
using namespace std;
class KB
{
	protected:
		double x,y;//分别表示长方形的长和宽。
	public:
		KB(double x1,double y1)
		{
			x=x1;
			y=y1;
		}
		virtual double area()//虚函数,计算长方形的面积,计算公式:面积=长X宽。
		{
			return x*y;
		}
		double peri()// 计算长方形的周长。计算公式:周长=2X长+2X宽。
		{
			double p=2*(x+y);
			return  p;
		}
		virtual int iSqure()//虛函数,判断是否为正方形,如是,返回1;否则返回0。
		{
			if(x==y)
			return 1;
			else
			return 0;
		}
};
class KB2:public KB
{
	double height;//表示长方体的高度。
	public:
		KB2(double x1,double y1,double h):KB(x1,y1)
		{
			height=h;
		}
		double volume()//计算长方体的体积。计算公式:体积=底面积X高
		{
			double v;
			v=KB::area()*height;
			return v;
		}
		double area()//计算长方体的表面积。计算公式:表面积=2X底面积+底面周长X高度
		{
			double aa;
			aa=2*KB::area() +KB::peri() *height;
			return aa;
		}
		int iSquare0()//判断是否为正方体,如是,返回l,否则返回0。
    {
    	if(KB::iSqure()&&height==x)
    	return 1;
    	else
    	return 0;
	}
		
};
int main()
{
	KB *re;//基类的指针 
	KB2 cu(2,2,2);//派生类的对象 
	re=&cu;//基类的指针指向派生类的对象 
	cout<<"长方体的体积是:"<<cu.volume() <<endl;//派生类的对象调用派生类的成员函数 
	cout<<"长方体的表面积是:"<<re->area()<<endl;
	if(re->iSqure())
	cout<<"这个长方体是正方体"<<endl;
	else
	cout<<"这个长方体不是正方体"<<endl;
}

发布了7 篇原创文章 · 获赞 0 · 访问量 129

猜你喜欢

转载自blog.csdn.net/zzzzzkkk/article/details/104706139