所以我是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;
}
为什么我不能在UserMessageFile类中使用Message类的数组?在我可以执行此操作之前,是否需要在UserMessageFile类中包含Message类?我究竟是如何实现这一目标的?
答案 0 :(得分:5)
您不能将具有未知大小的数组指定为类成员(事实上,除非它带有静态初始化程序,否则您不能指定一个,并且您不能在类定义中使用它们。)
您要找的是std::vector
。
class UserMessageFile
{
private:
std::vector<Message> messages;
};
答案 1 :(得分:2)
您几乎总是希望使用std::
类型。因此,请使用std::vector
或std::array
。如果你真的需要使用c风格的数组,你必须这样做:
Messages messages[10]; // Your syntax must have the array
// braces at the end and you must specify
// an array length.
其他语法错误包括:
class a {};
)结束。...
,这是不可识别的。