我试图通过我的场景获得的面向对象的想法是什么?

What is the object-oriented idea I'm trying to get at with my scenario?

我有一个场景,我做了一个 class,称之为 myClass,我意识到我需要另一个 class,称之为 myOtherClass ,它将在 myClass 内部使用,但不会在其外部使用。我已经很多年没有修读计算机科学 class,所以我不记得我想要学习的术语。没有遗产在进行;只是 myClass 使用 myOtherClass,实际上构建了一个 myOtherClass 对象树,我想正确封装所有内容。

我需要遵循的概念是什么?它在 C++ 中的具体含义是什么?如果我需要尝试使这个问题更清楚,请告诉我。

它被称为嵌套class。

class myClass
{
   class myOtherClass {...}; // myOtherClass is a nested class inside
                             // myClass.

   myOtherClass a;           // a is member variable of myClass.
                             // Its type is myOtherClass.
};

听起来像是作曲。 class 拥有一个私有成员:

class Edible {};

class Food
{
private:
    Edible eds;
};

请注意,这在某些方面类似于私有继承(尽管正如您提到的那样,您正在构建它们的树,但组合才是您想要的)。

MyClass 由 MyOtherClass 对象树组成。设计模式是一种组合。如果您实施了模板化树 class,您的代码可能如下所示:

#include "MyOtherClass.h"

class MyClass
{
public:
 MyClass();
 ~MyClass();
private:
 Tree<MyOtherClass> m_tree;
};