找回密码
 立即注册
首页 业界区 安全 实验五

实验五

忙贬 前天 21:35
publisher.hpp
  1. #pragma once
  2. #include <string>
  3. // 发行/出版物类:Publisher (抽象类)
  4. class Publisher {
  5. public:
  6.     Publisher(const std::string &name_ = "");            // 构造函数
  7.     virtual ~Publisher() = default;
  8. public:
  9.     virtual void publish() const = 0;                 // 纯虚函数,作为接口继承
  10.     virtual void use() const = 0;                     // 纯虚函数,作为接口继承
  11. protected:
  12.     std::string name;    // 发行/出版物名称
  13. };
  14. // 图书类: Book
  15. class Book: public Publisher {
  16. public:
  17.     Book(const std::string &name_ = "", const std::string &author_ = "");  // 构造函数
  18. public:
  19.     void publish() const override;        // 接口
  20.     void use() const override;            // 接口
  21. private:
  22.     std::string author;          // 作者
  23. };
  24. // 电影类: Film
  25. class Film: public Publisher {
  26. public:
  27.     Film(const std::string &name_ = "", const std::string &director_ = "");   // 构造函数
  28. public:
  29.     void publish() const override;    // 接口
  30.     void use() const override;        // 接口            
  31. private:
  32.     std::string director;        // 导演
  33. };
  34. // 音乐类:Music
  35. class Music: public Publisher {
  36. public:
  37.     Music(const std::string &name_ = "", const std::string &artist_ = "");
  38. public:
  39.     void publish() const override;        // 接口
  40.     void use() const override;            // 接口
  41. private:
  42.     std::string artist;      // 音乐艺术家名称
  43. };
复制代码
publisher.cpp
[code]#include #include #include "publisher.hpp"// Publisher类:实现Publisher:ublisher(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

相关推荐

您需要登录后才可以回帖 登录 | 立即注册