什么是正确的封装语法
What is the proper encapsulation syntax?
我有出版物和图书馆两个类,在出版类中。如果我希望它们是单独的类,如何操纵(作为封装)类型,媒体和target_age。这不是另一个课程中的课。该类型具有更多类型(虚构,非小说,自助,表现)以及媒体和年龄。我已经完成了我的研究,我为此提供了适当的语法。
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(){}
};
封装的最佳方法是使所有内容保持私密。为可能从外部读取的内容创建常量的getters,并初始化构造函数中的所有内容。毕竟,诸如作者/title/等之类的东西。不应该改变真实书的实例吗?看看以下片段:
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)
{ }
};
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 将可变参数函数的参数封装在类实例中
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 封装C++模板
- 使用基类指针调用基类的值构造函数的语法是什么?
- 将 RTOS 队列对象封装在仅具有静态分配的 IQueue 自定义接口中
- 从封装在对象中的函数 C++ 返回时为空的列表
- 什么是正确的封装语法