#包含?" iostream "
使用?命名空間?std
班級?容器
{
公共:
虛擬的?雙倍?area()?=?0;//計算表面積
虛擬的?雙倍?音量()?=?0;//計算體積
};
//多維數據集類
班級?立方體?:?公共?容器
{
受保護:
雙倍?側面;//邊長
公共:
立方體(雙?側)?:?側面(側面){}
雙倍?面積()
{
回歸?側面?*?側面?*?6;
}
雙倍?音量()
{
回歸?側面?*?側面?*?側面;
}
};
//球體類
班級?球體?:?公共?容器
{
受保護:
雙倍?半徑;//半徑
公共:
球體(雙?半徑)?:?半徑(半徑){}
雙倍?面積()
{
回歸?4?*?3.14?*?半徑?*?半徑;
}
雙倍?音量()
{
回歸?4?*?3.14?*?半徑?*?半徑?*?半徑?/?3;
}
};
//圓柱體類
班級?氣缸?:?公共?容器
{
受保護:
雙倍?半徑;//底部圓的半徑
雙倍?身高;//高
公共:
汽缸(雙?半徑,?雙倍?身高)?:?半徑(半徑),?身高(身高)?{}
雙倍?面積()
{
回歸?2?*?3.14?*?半徑?*?半徑?+?2?*?3.14?*?半徑?*?身高;
}
雙倍?音量()
{
回歸?3.14?*?半徑?*?半徑?*?身高;
}
};
int?主()
{
集裝箱?* c;
c?=?新的?立方體(2);
cout & lt& lt"立方體的表面積:" < & ltc->;area()& lt;& ltendl
cout & lt& lt"立方體的體積:" < & ltc->;volume()& lt;& ltendl
c?=?新的?球體(2);
cout & lt& lt"球體的表面積:" < & ltc->;area()& lt;& ltendl
cout & lt& lt"球體的體積:" < & ltc->;volume()& lt;& ltendl
c?=?新的?汽缸(2,3);
cout & lt& lt"圓柱體的表面積:" < & ltc->;area()& lt;& ltendl
cout & lt& lt"氣缸容積:" < & ltc->;volume()& lt;& ltendl
回歸?0;
}運行測試: