0

假设我想创建一个电影数据库软件。

我需要一个具有名称、姓氏、出生日期、奖项等属性的 Actor 类,它还应该有一个“电影”对象数组。

我还需要电影类,它的属性为标题、持续时间、年份,但它还应该有一个“演员”对象数组。代表电影的演员。

Actor 对象需要该演员完成的所有电影的列表,就像电影对象需要其中播放的所有演员的列表一样。这会变得非常混乱,因为它是一个包含另一个类的类,反之亦然,编译器会卡住。

which would be the right way to represent this situation? 
4

2 回答 2

1

Actor*您可以在 classMovieMovie*class中使用引用Actor。以及类的前向声明:

class Actor;

public class Movie { ... Actor* ... }

这在标题中。在类实现中.cpp,您可能会包含另一个类的标头,并使用另一个类的方法。

于 2013-07-23T09:36:05.707 回答
0

在大多数语言中,概念是相同的。正如您所观察到的,您不能在 Actors 中嵌入“电影对象列表”,反之亦然,因此请保留每个对象的列表,并以某种方式“引用”其他对象。这可能是使用一些唯一的参考值(例如,递增的数字),可用于搜索其他列表或关联容器(例如,在 C++ 中使用键/值“std::map”而不是链表),或者通过保持一个直接指向逻辑链接对象的引用或(弱)指针....

于 2013-07-23T09:33:25.690 回答