实验四

#ifndef BATTERY_HPP
#define BATTERY_HPP
class Battery {
private:double capacity;
public:Battery(double ca = 70) :capacity(ca) {}
      double get_capacity() const { return capacity; }
};

#endif
#ifndef ELECTRICCAR_HPP
#define ELECTRICCAR_HPP
#include"car.hpp"
#include"battery.hpp"
#include<string>
#include<iostream>
using namespace std;

class ElectricCar :public Car {
private:Battery battery;
public:ElectricCar(string ma, string mo, int ye);
      //ElectricCar(const Car& obj);
      void info();
};
ElectricCar::ElectricCar(string ma, string mo, int ye)
{
    car(ma, mo, ye);
}
void ElectricCar::info()
{
    cout << "maker:      " << get_maker() << endl
        << "model:      " << get_model() << endl
        << "year:       " << get_year() << endl
        << "odometers:  " << get_odometers() << endl
        << "capacity:   " << battery.get_capacity() <<"-kWh" << endl;
}

#endif
#ifndef CAR_HPP
#define CAR_HPP
#include<string>
#include<iostream>
using namespace std;

class Car {
private:string maker, model;
       int year;
       double odometers=0;
public:Car() {}
      Car(string ma, string mo, int ye) :maker(ma), model(mo), year(ye) {}
      ~Car() {}
      void info();
      void update_odometers(double odo);
      string get_maker() const { return maker; }
      string get_model() const{ return model; }
      int get_year() const { return year; }
      double get_odometers() const { return odometers; }
      void car(string ma, string mo, int ye) {
          maker = ma; model = mo; year = ye;
      }
};
void Car::info()
{
    cout << "maker:      " << maker << endl
        << "model:      " << model << endl
        << "year:       " << year << endl
        << "odometers:  " << odometers << endl;
}
void Car::update_odometers(double odo)
{
    if (odo < odometers) cout << "数值有误" << endl;
    else odometers = odo;
}

#endif

 

 

task4

#ifndef PETS_HPP
#define PETS_HPP
#include<iostream>
#include<string>
using namespace std;
class MachinePets {
private:string nickname;
public:MachinePets() {}
       MachinePets(const string s) :nickname(s) {}
       ~MachinePets() {}
       virtual string talk() { return ""; }
       string get_nickname() { return nickname; }
       void machinepets(const string s) { nickname = s;}
};
class PetCats :public MachinePets {
public:PetCats(const string s) { machinepets(s); }
      string talk() { return "miao wu"; }
};
class PetDogs :public MachinePets {
public:PetDogs(const string s) { machinepets(s); }
      string talk() { return "wang wang"; }
};

#endif

 

posted @ 2021-11-27 13:38  小小埋  阅读(18)  评论(3编辑  收藏  举报