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

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

C++ 虛函數使用以及繼承的問題 ?

C++ 虛函數使用以及繼承的問題 ?

精慕HU 2019-01-29 07:03:26
C++ 虛函數使用以及繼承的問題 
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

#include <iostream>
#define PI 3.14
using namespace std;
class container
{
public:
container(int radius=0){
this->radius = radius;/*賦值給類的成員變量*/
}
virtual void Square()=0;
virtual void Volume()=0;
int GetRadius(){return radius;} /*給私有成員變量提供一個訪問的函數*/
/*要想修改就提供一個void SetRadius(int radius)的函數*/
private:
int radius;
};
class cube:public container
{
public:
cube(int radius1):container(radius1){}
virtual void Square()
{
/*基類的私有成員在這里無法之間反問,可通過基類的成員函數訪問,下面凡事訪問radius都通過
GetRadius()來訪問*/
square1=4*PI*GetRadius()*GetRadius();
cout<<"the cube's square is:"<<square1<<endl;
}
virtual void Volume()
{
volume1=(4.0/3)*PI*GetRadius()*GetRadius()*GetRadius();/*4/3等于1了,要寫成4.0/3才對 */
cout<<"the cube's volume is:"<<volume1<<endl; /*這里應該是volume1*/
}
private:
double square1,volume1;
};
class sphere:public container
{
public:
sphere(int radius1):container(radius1){}
virtual void Square()
{
square2=6*GetRadius()*GetRadius();
cout<<"the sphere's square is:"<<square2<<endl;
}
virtual void Volume()
{
volume2=GetRadius()*GetRadius()*GetRadius();
cout<<"the sphere's volume is:"<<volume2<<endl;
}
private:
double square2,volume2;
};
class cylinder:public container
{
public:
cylinder(int radius1):container(radius1){}
virtual void Square()
{
cout<<"please input the cylinder's height=";
cin>>height;
square3=2*PI*GetRadius()*GetRadius()+2*PI*GetRadius()*height;
cout<<"the cylinder's square is:"<<square3<<endl;
}
virtual void Volume()
{
volume3=PI*GetRadius()*GetRadius()*height;
cout<<"the cylinder's volume is:"<<volume3<<endl;
}
private:
double square3,volume3;
int height;
};
int main()
{
//container container1;
int a;
cout<<"Please input a radius=";
cin>>a;
cube cube1(a);
sphere sphere1(a);
cylinder cylinder1(a);
cube1.Volume();
cube1.Square();
sphere1.Volume();
sphere1.Square();
cylinder1.Square();
cylinder1.Volume();
return 0;
}



查看完整回答
反對 回復 2019-03-14
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

#include <iostream>
#define PI 3.14
using namespace std;
class container
{
public:
container(int radius=0){}
virtual void Square()=0;
virtual void Volume()=0;
//private: //因為這個是私有的,不能被繼承類訪問,為了簡單,我將它改成了public
int radius;
};
class cube:public container
{
public:
cube(int radius1):container(radius1){} //這里int必須去掉
virtual void Square()
{
square1=4*PI*radius*radius; //////////////////基類的成員是radius,沒有1,你寫成了radius1
cout<<"the cube's square is:"<<square1<<endl;
}
virtual void Volume()
{
volume1=4/3*PI*radius*radius*radius; //////////////////基類的成員是radius,沒有1,你寫成了radius1
cout<<"the cube's volume is:"<<square1<<endl;
}
private:
double square1,volume1;
};
class sphere:public container
{
public:
sphere(int radius1):container(radius1){} //這里int必須去掉
virtual void Square()
{
square2=6*radius*radius; //////////////////基類的成員是radius,沒有1,你寫成了radius1
cout<<"the sphere's square is:"<<square2<<endl;
}
virtual void Volume()
{
volume2=radius*radius*radius; //////////////////基類的成員是radius,沒有1,你寫成了radius1
cout<<"the sphere's volume is:"<<volume2<<endl;
}
private:
double square2,volume2;
};
class cylinder:public container
{
public:
cylinder(int radius1):container(radius1){} //這里int必須去掉
virtual void Square()
{
cout<<"please input the cylinder's height=";
cin>>height;
square3=2*PI*radius*radius+2*PI*radius*height; //////////////////基類的成員是radius,沒有1,你寫成了radius1
cout<<"the cylinder's square is:"<<square3<<endl;
}
virtual void Volume()
{
volume3=PI*radius*radius*height; //////////////////基類的成員是radius,沒有1,你寫成了radius1
cout<<"the cylinder's volume is:"<<volume3<<endl;
}
private:
double square3,volume3;
int height;
};
int main()
{
//container container1;
int a;
cout<<"Please input a radius=";
cin>>a;
cube cube1(a);
sphere sphere1(a);
cylinder cylinder1(a);
cube1.Volume();
cube1.Square();
sphere1.Volume();
sphere1.Square();
cylinder1.Square();
cylinder1.Volume();
return 0;
}



查看完整回答
反對 回復 2019-03-14
  • 2 回答
  • 0 關注
  • 859 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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