6-2 客货两用车虚函数和虚析构函数


#include 
using namespace std;
class CAR
{
  protected: 
           double  speed;
  public:
       CAR(double  s):speed(s){cout<<"创建汽车("<"公里/小时)"<virtual ~CAR(){cout<<"销毁汽车("<"公里/小时)"<//虚析构(可通过父类指针调用子类的析构函数,防止内存泄露) 
        virtual void Show()//虚函数 
        {
            
            cout<<"汽车:"<speed<<"公里/小时)"<class BUS: virtual public CAR
 {
      protected:
             double  seat;
      public:
         BUS(double  s,double  seat):CAR(s),seat(seat){cout<<"创建客车("<"人)"<BUS(){cout<<"销毁客车("<"人)"<virtual void Show()
         {
             
            cout<<"客车:"<speed<<"公里/小时), "<seat<<"人"<class TRUCK:virtual public CAR
 {
      protected:
             double  load;
      public:
         TRUCK(double  s,double  load):CAR(s),load(load){ cout<<"创建货车("<"吨)"<TRUCK(){cout<<"销毁货车("<"吨"<virtual void Show()
         {
             
             
            cout<<"货车:"<speed<<"公里/小时), "<load<<"吨"<class VAN:public BUS,public TRUCK 
 {
      
      public:
       VAN(double s,double seat,double  load):CAR(s),BUS(s,seat),TRUCK(s,load){cout<<"创建客货两用车"<//虚基类 
        ~ VAN(){cout<<"销毁客货两用车"<virtual void Show()//重载虚函数 
         {
             cout<<"客货两用车: "<BUS::speed<<"公里/小时, "<seat<<"人, "<load<<"吨"<int main()
{
    CAR *p;
    double s, t, w;
    cin >> s, t, w;
    p = new VAN(s, t, w);
    p->Show();
    delete p;
    return 0;
}


![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/11714393618619.png "#left")
为什么只能输出speed

你的 cin 输入要这样写呀

cin >> s>>t>>w;