在 C++ 中使用另一个类的对象计数在一个类中创建一个数组
Posted
技术标签:
【中文标题】在 C++ 中使用另一个类的对象计数在一个类中创建一个数组【英文标题】:Making an array in a class with object count of another class in C++ 【发布时间】:2020-04-04 06:50:23 【问题描述】:如果我们在 c++ 中有两个类 Movie 和 Movies 会怎样。 Movie 类具有与该类关联的所有属性和方法。而 Movies 类是 Movie 对象的集合。所以我的理解是,我们必须在movies类中创建一个数组,其中包含movie类的所有对象,但是我们怎样才能以这种方式编写movies类的代码呢?
【问题讨论】:
但是我们怎样才能为电影类编写代码呢? 就像任何其他程序一样,您可以按照正确的顺序一个接一个地放置字符。我的建议是您查阅您的编程参考资料,然后尝试自己解决问题。如有必要,请询问有关尝试的问题。 您还需要了解使用类的基本概念。看看quora.com/When-should-I-use-classes-in-C++ 【参考方案1】:使用向量比使用数组更好
#include <vector>
class Movie
...
;
class Movies
public:
...
private:
std::vector<Movie> data;
;
至于班上的其他人,这完全取决于你。想想你想要对一组电影进行哪些操作,然后编写代码。例如,您可能想知道您的收藏中有多少部电影,您可能想将一部电影添加到您的收藏中,您可能想在您的收藏中找到一部特定的电影。想想你想要什么并为此编写代码。
【讨论】:
【参考方案2】:如果您事先不知道对象的数量(假设您使用main()
中的rng 生成Movie
的对象,或者您的教授将创建随机数量的对象)然后使用向量。
另一种选择是在构造函数中对它们进行计数,并通过函数将计数值作为Movies
中所需的数组大小返回:
class Movie
public:
Movie() ++count;
Movie(const Movie&) ++count;
Movie() --count;
static size_t movieCount()
return count;
static size_t count;
;
size_t Movie::count = 0;
class Movies : public Movie
public:
Movie array[movieCount()];
【讨论】:
以上是关于在 C++ 中使用另一个类的对象计数在一个类中创建一个数组的主要内容,如果未能解决你的问题,请参考以下文章