忙贬 发表于 昨天 21:35

实验五

publisher.hpp
#pragma once

#include <string>

// 发行/出版物类:Publisher (抽象类)
class Publisher {
public:
    Publisher(const std::string &name_ = "");            // 构造函数
    virtual ~Publisher() = default;

public:
    virtual void publish() const = 0;               // 纯虚函数,作为接口继承
    virtual void use() const = 0;                     // 纯虚函数,作为接口继承

protected:
    std::string name;    // 发行/出版物名称
};

// 图书类: Book
class Book: public Publisher {
public:
    Book(const std::string &name_ = "", const std::string &author_ = "");// 构造函数

public:
    void publish() const override;      // 接口
    void use() const override;            // 接口

private:
    std::string author;          // 作者
};

// 电影类: Film
class Film: public Publisher {
public:
    Film(const std::string &name_ = "", const std::string &director_ = "");   // 构造函数

public:
    void publish() const override;    // 接口
    void use() const override;      // 接口            

private:
    std::string director;      // 导演
};


// 音乐类:Music
class Music: public Publisher {
public:
    Music(const std::string &name_ = "", const std::string &artist_ = "");

public:
    void publish() const override;      // 接口
    void use() const override;            // 接口

private:
    std::string artist;      // 音乐艺术家名称
};publisher.cpp
#include #include #include "publisher.hpp"// Publisher类:实现Publisher::Publisher(const std::string &name_): name {name_} {}// Book类: 实现Book::Book(const std::string &name_ , const std::string &author_ ): Publisher{name_}, author{author_} {}void Book::publish() const {    std::cout
页: [1]
查看完整版本: 实验五