没有合适的默认构造函数

来源:百度知道 编辑:UC知道 时间:2024/06/25 15:30:22
使用纯虚函数求球,正方体和圆柱体的表面积和体积!
#include "stdafx.h"
#include<iostream>
using namespace std;
class base
{
protected:
int r;
int h;
int a;
virtual double show_area()=0;
virtual double show_tiji()=0;
};
class qiu:public base
{
protected:
int r;
public:
qiu(int i){r=i;}
virtual double show_area(){return(3.1415926*r*r*4);}
virtual double show_tiji(){return (4/3*3.1415926*r*r*r);}
};
class zft:public base
{
protected:
int a;
public:
zft(int i){a=i;}
virtual double show_area(){return(6*a*a);}
virtual double show_tiji(){return(a*a*a);}
};
class yzt:public base
{
protected:
int r;
int h;
public:
yzt(int i,int j){r=i;h=j;}
virtual double show_area(){return(2*3.1415926*r*h+2*3.1415926*r*r);}
virtual double show_tiji(){return(2*3.1415926*r*r*h);}
};

void main()
{
int i,j;

cout<<"请输入球的半径:";
cin>>i;
qiu objq(i);
cout<<"球的表面积是:"<<objq.show_area()<<endl;
cout<<"球的体积是:"<<objq.show_tiji()<<endl;
cout<<"请输入正方体边长:";
cin>>i;
zft objz(i);
cout<<"正方体的表面积是:"<<objz.show_area()<<endl;
cout<<"正方体的体积是:"<<objz.show_tiji()<<endl;
cout<<"请输入园柱体的半径:";
cin>>i;
cout<<"请输入圆柱体的高:";
cin>>j;
yzt objy(i,j);
cout<<"圆柱体的表面积是:"<<objy.show_area()<<endl;
cout<<"圆柱体的体积是:"<<objy.show_tiji()<<endl;
}