有人可以将我引向一些不错的资源来理解和使用嵌套类吗?我有一些像《编程原理》之类的材料,以及诸如《IBM Knowledge Center-Nested Classes》之类的东西。
但是我仍然很难理解他们的目的。有人可以帮我吗?
嵌套类非常适合隐藏实现细节。
清单:
class List
{
public:
List(): head(nullptr), tail(nullptr) {}
private:
class Node
{
public:
int data;
Node* next;
Node* prev;
};
private:
Node* head;
Node* tail;
};
这里我不想公开Node,因为其他人可能决定使用这个类,因为公开的任何东西都是公共API的一部分,必须永久维护,从而妨碍我更新我的类。通过将类设为私有,我不仅隐藏了实现,而且还说这是我的,我可以随时更改它,以便您不能使用它。
看一下,std::list
或者std::map
它们都包含隐藏的类(或者它们是吗?)。关键是它们可能存在或不存在,但是因为实现是私有的并且是隐藏的,所以STL的构建者能够在不影响您使用代码的方式的情况下更新代码,或者因为需要使用STL,而在他们周围留下了很多旧行李为了与那些决定使用隐藏在内部的Node类的傻瓜保持向后兼容list
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句