簡體   English   中英

在 class 中使用 object 在 ZF6F2ED4F8EBC2CBB4C21A29DC40AB61DZ 中計數 ZF6F87C9FDCF8B3C3F07ZF93F1EE8712C

[英]Making an array in a class with object count of another class in C++

如果我們在 c++ 中有兩個類 Movie 和 Movies 怎么辦。 電影 class 具有與 class 關聯的所有屬性和方法。 而 Movies class 是 Movie 對象的集合。 所以我從中了解到的是,我們必須在電影 class 中創建一個數組,其中包含電影 class 的所有對象,但是我們如何以這種方式編寫電影 class 的代碼?

使用向量比使用數組更好

#include <vector>

class Movie
{
    ...
};

class Movies
{
public:
    ...
private:
    std::vector<Movie> data;
};

至於 class 的 rest,這完全取決於您。 想想你想要對一組電影進行哪些操作,然后編寫代碼。 例如,您可能想知道您的收藏中有多少部電影,您可能想將一部電影添加到您的收藏中,您可能想在您的收藏中找到一部特定的電影。 想想你想要什么並為此編寫代碼。

如果您不知道預先處理的對象數量(例如,您在main()中使用 rng 生成Movie對象,或者您的教授將創建隨機數量的對象),則使用向量。

另一種選擇是在構造函數中對它們進行計數,並通過 function 返回計數值作為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()];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM