【发布时间】:2021-09-21 08:51:29
【问题描述】:
我在初始化结构数组时遇到问题。下面是代码:
#include <iostream>
#include <array>
#include <string>
#define NUM_ELEMENT 5
struct Person
{
std::string m_name;
int m_age = 0;
Person() = default;
Person(std::string name, int age)
: m_name(name), m_age(age) {}
};
typedef std::array<Person, NUM_ELEMENT> PersonList;
class Detail
{
public:
void InitializePerson();
private:
PersonList personList;
};
void Detail::InitializePerson()
{
personList{ // <------ Getting Error here..
Person("abc", 10),
Person("cde", 20),
Person("pqr", 30),
Person("xyz", 40),
Person("apple", 50),
};
}
int main()
{
Detail detail;
detail.InitializePerson();
return 0;
}
虽然,我知道我可以将 std::vector 与push_back 一起使用,但我想通过静态数组来实现这一点,因为它的元素是固定的。我想用上面的类 Detail 成员初始化数组,因为数据可以是随机的,所以不能在 for loop by personList[0] = Person{}; 中做
【问题讨论】: