我创建了一个类Patient,我想填充Patients我通过显式构造函数创建的对象列表。但是,Type name is not allowed当我尝试list<Patient>使用 `={}(初始化列表)填充时出现错误。我想问一下我做错了什么?
#include "pch.h"
#include <iostream>
#include <string>
#include <list>
using namespace std;
class Patient {
string name;
string birthday;
int visits;
public:
Patient(string n, string b, int v) {
name = n;
birthday = b;
visits = v;
}
};
list<Patient> sp = {
Patient a("I.Petrov", "21.12.02", 4),
Patient b("D.Stoyanov", "12.02.97", 7),
Patient c("K.Dimitrov", "07.08.90", 1)
};
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
列表的初始值设定项采用一系列表达式,但您已经为它提供了完整的变量声明。这根本不是有效的语法。您只能将声明放在函数或命名空间范围内的“可用空间”中,而不能放在另一个语句中(为了这个答案,我们将忽略条件的乐趣)。
您可能打算创建一些临时文件:
list<Patient> sp = {
Patient("I.Petrov", "21.12.02", 4),
Patient("D.Stoyanov", "12.02.97", 7),
Patient("K.Dimitrov", "07.08.90", 1)
};
Run Code Online (Sandbox Code Playgroud)
但我会把它写成:
std::list<Patient> sp{
{"I.Petrov", "21.12.02", 4},
{"D.Stoyanov", "12.02.97", 7},
{"K.Dimitrov", "07.08.90", 1}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |