我有一个场景,我已经上课,称之为myClass
,我已经意识到我需要另一个课程,称之为myOtherClass
,这将在里面使用myClass
但不在其之外。我已经多年没上过计算机科学课了,所以我无法记住我试图获得的术语。没有继承;只是myClass
使用myOtherClass
,实际上构建了一个myOtherClass
个对象的树,我想要正确地封装所有内容。
我需要遵循的概念是什么,具体是什么?如果我需要尝试让这个问题更清楚,请告诉我。
答案 0 :(得分:6)
它被称为嵌套类。
class myClass
{
class myOtherClass {...}; // myOtherClass is a nested class inside
// myClass.
myOtherClass a; // a is member variable of myClass.
// Its type is myOtherClass.
};
答案 1 :(得分:2)
听起来像是作文。该类拥有私人成员:
class Edible {};
class Food
{
private:
Edible eds;
};
请注意,这在某些方面类似于私有继承(尽管你提到你正在构建它们的树,但组合是你想要的)。
答案 2 :(得分:0)
MyClass由MyOtherClass对象树组成。设计模式是构图之一。如果您实现了模板化的Tree类,那么您的代码可能如下所示:
#include "MyOtherClass.h"
class MyClass
{
public:
MyClass();
~MyClass();
private:
Tree<MyOtherClass> m_tree;
};