我有发布和库两个类和发布类。如何操作(作为封装)类型,媒体和target_age,如果我希望它们是单独的类。它不属于另一个班级。 该类型有更多的类型(小说,非小说,自助,表演)以及媒体和年龄。我已经完成了我的研究,我为serchin提供了正确的语法。
class Publication {
private:
string title;
string authore;
string copyright;
Genre genre;
Media media;
Age target_age;
string isbn;
bool checked_out;
string patron_name;
string patron_phone;
public:
void check_out(string patron_name, string patron_phone ){}
void check_in(){}
bool is_checked_out(){}
string to_string(){}
};
答案 0 :(得分:1)
封装的最佳方法是保持一切私密。为可能从外部读取的东西创建常量getter,并初始化构造函数中的所有内容。毕竟,像作者/标题/等等。不应该为真实书籍的实例改变吗?请看下面的代码段:
class Publication {
private:
string _title;
string _author;
Genre _genre;
public:
void check_out(string patron_name, string patron_phone );
void check_in();
bool is_checked_out() const;
string to_string() const;
string get_title() const { return _title; }
string get_author() const { return _author; }
const Genre& get_genre() const { return _genre; }
Publication(string author, string title, Genre genre) : _author(auth), _title(title), _genre(genre)
{ }
};