我正在尝试将一个具有其他结构的结构定义为该结构的成员,但是我不确定如何做到这一点。到目前为止,我拥有的代码如下:
typedef struct name
{
char fname[15];
char lname[15];
} Name;
typedef struct info
{
int grade;
char phone[13];
} Info;
typedef struct mark
{
int math;
int sci;
int eng;
} Mark;
typedef struct student
{
Name n;
Info i;
Mark m;
} Student;
int main()
{
Student class_list[30] = { };
}
答案 0 :(得分:2)
如果您的问题是如何初始化数组,则答案如下:
Student class_list[2] = {
{{"John", "Doe"}, {8, "000-555-000"}, {1, 2, 3}},
{{"Jane", "Doe"}, {10, "000-555-001"}, {10, 8, 10}},
};
之所以这样工作,是因为您的类是聚合类,因此您可以使用aggregate initialization。
好吧,我初始化了一个由2个元素组成的数组。您可以看到语法。
程序的一些要点。 typedef struct
的方式是C习语。在C ++中,您不需要它,因此请将所有定义更改为:
struct Name
{
char fname[15];
char lname[15];
};
另外,您应该使用std::array
而不是C数组:
std::array<Student, 3> class_list {{
{{"John", "Doe"}, {8, "000-555-000"}, {1, 2, 3}},
{{"Jane", "Doe"}, {10, "000-555-001"}, {10, 8, 10}},
}};