这就是场景。
我有一个Layer
类,我想创建一个子类,让我们调用这个ParentLayer
类。 ParentLayer
类将有另一个Layer
子类,称为ChildLayer
类。哪种方法最好?
在ChildLayer
内宣布ParentLayer
为私人类。
// LayerSubclass.h
#include "Layer.h"
class ParentLayer : public Layer {
private:
class ChildLayer : public Layer {
private:
// ChildLayer members
public:
// Stuff...
};
ChildLayer _childLayer;
public:
// Stuff...
};
将ChildLayer声明为同一个头文件中的单独类。
// LayerSubclass.h
#include "Layer.h"
class ChildLayer : public Layer {
private:
// ChildLayer members
public:
// Stuff...
};
class ParentLayer : public Layer {
private:
ChildLayer _thisChild;
public:
// Stuff...
};
我一直在使用第一种方法,但后来我想到了第二种方法(更干净,更易读)。想法?
答案 0 :(得分:1)
这不是“什么更好”的问题,而是一个适合您要求的设计问题。如果没有您要解决的问题的描述,则无法给出合理的答案。
答案 1 :(得分:1)
我可能更喜欢使用嵌套类:
friend
访问包含类的私有成员(例如,对于迭代器类,可以访问相应容器类的成员)