ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实验4

2021-12-01 11:03:45  阅读:135  来源: 互联网

标签:HPP string hpp 实验 MachinePets include public


task3

Battery.hpp

#ifndef BATTERY_HPP
#define BATTERY_HPP
#include<bits/stdc++.h>
using namespace std;

class Battery
{
    public:
        Battery(int a=70):capacity(a){}
        int get_capacity(){
            return this->capacity;
        }
    private:
        int capacity;
};

#endif

Car.hpp

#ifndef CAR_HPP
#define CAR_HPP
#include<bits/stdc++.h>
using namespace std;
class Car {
    public:
        Car(string Maker,string Model,int Year):maker(Maker),model(Model),year(Year) {this->odometers=0;}
        void info() {
            cout<<"maker:        "<<maker<<endl;
            cout<<"model:        "<<model<<endl;
            cout<<"year:        "<<year<<endl;
            cout<<"odometers:    "<<odometers<<endl;
        }
        void update_odometers(double a){
            if(a<this->odometers){
                cout<<"输入信息有误"<<endl;; 
            }
            else{    
                this->odometers=a;
            }
        }
        
        
    private:
        string maker;
        string model;
        int year;
        double odometers;
};

#endif

electricCar.hpp

#ifndef ELECTRICCAR_HPP
#define ELECTRICCAR_HPP
#include<bits/stdc++.h>
#include"Battery.hpp"
#include"Car.hpp"
using namespace std;
class ElectricCar:public Car
{
    public:
        ElectricCar(string maker,string model,int year,double battery=70):Car{maker,model,year},battery(battery){}
        void info(){
            Car::info();
            cout<<"capacity:    "<<this->battery.get_capacity()<<"kwh"<<endl;
        }
        
    private:
        Battery battery;
};

#endif

main.cpp

#include <iostream>
#include "electricCar.hpp"
int main() {
    using namespace std;
// test class of Car
    Car oldcar("Audi", "a4", 2016);
    cout << "--------oldcar's info--------" << endl;
    oldcar.update_odometers(25000);
    oldcar.info();
    cout << endl;
// test class of ElectricCar
    ElectricCar newcar("Tesla", "model s", 2016);
    newcar.update_odometers(2500);
    cout << "\n--------newcar's info--------\n";
    newcar.info();
}

 

 

-----------------------------------------------------------------------------------------

task4

MachinePets.hpp

#ifndef MACHINEPETS_HPP
#define MACHINEPETS_HPP
#include<bits/stdc++.h>
using namespace std;

class MachinePets
{
    public:
        MachinePets(const string s):nickname(s){} 
        virtual string talk(){
            return "A";
        }
        string get_nickname(){
            return this->nickname;
        }
    private:
        string nickname;
};

#endif

Pets.hpp

#ifndef PETDOGS_HPP
#define PETDOGS_HPP
#include"MachinePets.hpp"
#include<bits/stdc++.h>
using namespace std;

class PetCats:public MachinePets{
    public:
        PetCats(const string s):MachinePets(s) {}
        string talk() {
            return "wangwang~";
        }
    private:

};
class PetDogs:public MachinePets {
    public:
        PetDogs(const string s):MachinePets(s) {}
        string talk() {
            return "miaowu~";
        }
    private:

};
#endif

main.cpp

#include <iostream>
#include "Pets.hpp"
void play(MachinePets *ptr) {
    std::cout << ptr->get_nickname() << " says " << ptr->talk() <<
              std::endl;
}
int main() {
    PetCats cat("miku");
    PetDogs dog("da huang");
    play(&cat);
    play(&dog);
}

 

标签:HPP,string,hpp,实验,MachinePets,include,public
来源: https://www.cnblogs.com/lmy320/p/15627894.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有