亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

以下內容是關于C++面向對象程序設計問題,求解釋~

以下內容是關于C++面向對象程序設計問題,求解釋~

C++ C
寶慕林4294392 2021-11-20 15:11:17
題目:應用VC++6.0的編輯環境構造一個類Jhtx及其派生類,該類主要實現關于幾何圖形的基本操作。對于基類“幾何圖形”,有求面積、求體積的函數(純虛函數),其派生類圓和矩形主要有初始化(構造函數),求面積,求周長操作,類圓的派生類圓球和圓柱有求表面積、體積操作。 試在主函數中分別定義圓、圓球、圓柱以及矩形的對象,并調用其成員函數實現其相應操作。以下是我的程序,但是有一些錯誤,都是相同的錯誤,請大家指教。#include<iostream.h>class Geometry{public:Geometry(double a,double b,double c){x=a,y=b,c=z;}~Geometry(){};virtual double GetArea()=0;double GetPerimeter();virtual double GetColume()=0;virtual void Show()=0;protected:double x,y,z;};class Circle:public Geometry{protected:double r;public:Circle(double a):Geometry(a,0,0){r=a;}~Circle(){};double GetArea(){return 3.14*r*r;} double GetPerimeter(){return 6.28*r;}virtual double GetColume(){return 0;}void Show(){cout<<"Area is:"<<GetArea()<<endl;cout<<"Perimeter is:"<<GetPerimeter()<<endl;} };class Rectangle:public Geometry{public: Rectangle(double a,double b):Geometry(a,b,0){}~Rectangle(){};double GetArea(){return x*y;}double GetPerimeter(){return x+y;} virtual double Getolume(){return 0;}void Show(){cout<<"Area is:"<<GetArea()<<endl;cout<<"Perimeter is:"<<GetPerimeter()<<endl;}};class Ball:public Circle{public: Ball(double a):Circle(a){};~Ball(){};double GetArea(){return 4*3.14*x*x;}double GetColume(){return (4/3)*3.14*x*x*x;}double GetPerimeter(){return 0;}void Show(){cout<<"Area is:"<<GetArea()<<endl;cout<<"Getcolume is:"<<GetColume()<<endl;}};class Column:public Circle{protected:double h;Column(double a,double h):Circle(a),h(h){}~Column(){};double GetArea(){return 2*3.14*x*x+2*3.14*x*h;}double GetColume(){return 3.14*x*x*h;}double GetPerimeter(){return 0;} void Show(){cout<<"Area is:"<<GetArea()<<endl;cout<<"Getcolume is:"<<GetColume()<<endl;}};int main(){ Geometry *p;Circle ob1(1);Rectangle ob2(2,2);Ball ob3(3);Column ob4(4,3);p=&ob1;p->GetArea();p->GetPerimeter();p->Show();p=&ob2;p->GetArea();p->GetPerimeter();p->Show();p=&ob3;p->GetArea();p->GetPerimeter();p->Show();p=&ob4;p->GetArea();p->GetPerimeter();p->Show();return 0;}
查看完整描述

2 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

我改了一下,已經能通過并且運行了:
#include<iostream.h>
class Geometry{
public:
Geometry(double a,double b,double c)
{x=a,y=b,c=z;}
~Geometry(){};
virtual double GetArea()=0;
virtual double GetPerimeter()=0;//這里有改動
virtual double GetColume()=0;
virtual void Show()=0;
protected:
double x,y,z;
};
class Circle:public Geometry{
protected:
double r;
public:
Circle(double a):Geometry(a,0,0)
{r=a;}
~Circle(){};
double GetArea()
{return 3.14*r*r;}
double GetPerimeter()
{return 6.28*r;}
virtual double GetColume()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Perimeter is:"<<GetPerimeter()<<endl;}
};
class Rectangle:public Geometry{
public:
Rectangle(double a,double b):Geometry(a,b,0)
{}
~Rectangle(){};
double GetArea()
{return x*y;}
double GetPerimeter()
{return x+y;}
virtual double GetColume()//這里有改動
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Perimeter is:"<<GetPerimeter()<<endl;}
};
class Ball:public Circle{
public:
Ball(double a):Circle(a)
{};
~Ball(){};
double GetArea()
{return 4*3.14*x*x;}
double GetColume()
{return (4/3)*3.14*x*x*x;}
double GetPerimeter()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Getcolume is:"<<GetColume()<<endl;}
};
class Column:public Circle{
public://這里改為public
double h;
Column(double a,double h):Circle(a),h(h){}
~Column(){};
double GetArea()
{return 2*3.14*x*x+2*3.14*x*h;}
double GetColume()
{return 3.14*x*x*h;}
double GetPerimeter()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Getcolume is:"<<GetColume()<<endl;}
};
int main()
{ Geometry *p;
Circle ob1(1);
Rectangle ob2(2,2);
Ball ob3(3);
Column ob4(4,3);
p=&ob1;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob2;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob3;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob4;
p->GetArea();
p->GetPerimeter();
p->Show();
return 0;
}



查看完整回答
反對 回復 2021-11-24
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

#include<iostream>
using namespace std;

class Geometry{
public:
Geometry(double a,double b,double c)
{x=a,y=b,c=z;}
virtual ~Geometry(){};
virtual double GetArea()=0;
virtual double GetPerimeter()=0;
virtual double GetColume()=0;
virtual void Show()=0;
protected:
double x,y,z;
};
class Circle:public Geometry{
protected:
double r;
public:
Circle(double a):Geometry(a,0,0)
{r=a;}
virtual ~Circle(){};
double GetArea()
{return 3.14*r*r;}
double GetPerimeter()
{return 6.28*r;}
virtual double GetColume()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Perimeter is:"<<GetPerimeter()<<endl;}
};
class Rectangle:public Geometry{
public:
Rectangle(double a,double b):Geometry(a,b,0)
{}
~Rectangle(){};
double GetArea()
{return x*y;}
double GetPerimeter()
{return x+y;}
virtual double GetColume()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Perimeter is:"<<GetPerimeter()<<endl;}
};
class Ball:public Circle{
public:
Ball(double a):Circle(a)
{};
~Ball(){};
double GetArea()
{return 4*3.14*x*x;}
double GetColume()
{return (4/3)*3.14*x*x*x;}
double GetPerimeter()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Getcolume is:"<<GetColume()<<endl;}
};
class Column:public Circle{
public:
double h;
Column(double a,double h):Circle(a){
this->h = h;
}
~Column(){};
double GetArea()
{return 2*3.14*x*x+2*3.14*x*h;}
double GetColume()
{return 3.14*x*x*h;}
double GetPerimeter()
{return 0;}
void Show()
{cout<<"Area is:"<<GetArea()<<endl;
cout<<"Getcolume is:"<<GetColume()<<endl;}
};
int main()
{ Geometry *p;
Circle ob1(1);
Rectangle ob2(2,2);
Ball ob3(3);
Column ob4(4,3);
p=&ob1;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob2;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob3;
p->GetArea();
p->GetPerimeter();
p->Show();
p=&ob4;
p->GetArea();
p->GetPerimeter();
p->Show();
return 0;
}
改完了,能運行,自己看看



查看完整回答
反對 回復 2021-11-24
  • 2 回答
  • 0 關注
  • 440 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號