如何在类中初始化和使用另一个类的数组?(C++)

cjo*_*724 -1 c++ arrays

所以我是C++和Java的新手,很容易使用其他类的数组,我想知道是否有办法使用其他类的数组,如下所示:

#include <iostream>
#include <array>
#include <string>

using namespace std;

class Message
{...}
class UserMessageFile
{
    private:
        Message[] messages;
}
int main(int argc, const char * argv[])
{
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能在UserMessageFile类中使用Message类的数组?在我可以执行此操作之前,是否需要在UserMessageFile类中包含Message类?我究竟是如何实现这一目标的?

Sto*_*ica 5

您不能将具有未知大小的数组指定为类成员(事实上除非它带有静态初始化程序,否则您不能指定一个,并且您不能在类定义中使用这些数组).

你在寻找什么std::vector.

class UserMessageFile
{
private:
    std::vector<Message> messages;
};
Run Code Online (Sandbox Code Playgroud)