我试图了解我的场景是什么是面向对象的想法?

时间:2015-03-16 04:06:24

标签: c++ class oop

我有一个场景,我已经上课,称之为myClass,我已经意识到我需要另一个课程,称之为myOtherClass,这将在里面使用myClass但不在其之外。我已经多年没上过计算机科学课了,所以我无法记住我试图获得的术语。没有继承;只是myClass使用myOtherClass,实际上构建了一个myOtherClass个对象的树,我想要正确地封装所有内容。

我需要遵循的概念是什么,具体是什么?如果我需要尝试让这个问题更清楚,请告诉我。

3 个答案:

答案 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;
};