#include<iostream>\n#include<string>\n#include<vector>\nusing namespace std;\nclass Course\n{\n public:\n string name;\n string instructorInCharge;\n int numberOfStudents;\n int totalMarks;\n Course(string u, string v, int p, int q){\n this->name=u;\n this->instructorInCharge=v;\n this->numberOfStudents=p;\n this->totalMarks=q;\n\n }\n \n vector<int> studentMarks (numberOfStudents);\n\n \n\n};\nclass Labs:public Course\n{\n \n vector<int>labMarks(numberOfStudents);\n\n};\n\nint main()\n{\n Course c("Rahul","Hota",200,300);\n cout<<"hello there";\n}\n
Run Code Online (Sandbox Code Playgroud)\n当我编译此代码时,我\xe2\x80\x99m 收到以下错误:
\n1.cpp:20:31: error: 'numberOfStudents' is not a type\n 20 | vector<int> studentMarks (numberOfStudents);\n | ^~~~~~~~~~~~~~~~\n1.cpp:28:29: error: 'numberOfStudents' is not a type\n 28 | vector<int>labMarks(numberOfStudents);\n | ^~~~~~~~~~~~~~~~\n
Run Code Online (Sandbox Code Playgroud)\n请告诉我我的错误是什么。\nnumberostudents 应该是向量的大小。但没有任何功能。
\nRun Code Online (Sandbox Code Playgroud)vector<int> studentMarks (numberOfStudents);
这是一个函数声明。返回类型为vector<int>
,名称为 ,studentMarks
并且它接受类型为 的单个参数numberOfStudents
。正如错误所指出的,除了,numberOfStudents
它不是一种类型。
您不能使用括号来指定默认成员初始值设定项。您必须使用花括号:
T member {value};
Run Code Online (Sandbox Code Playgroud)
或“等于”初始化器:
T member = value;
Run Code Online (Sandbox Code Playgroud)
但请注意,您不会初始化numberOfStudents
成员,而是稍后在构造函数主体中对其进行分配。此分配是在studentMarks
初始化之后进行的,因此默认成员初始化程序studentMarks
不会反映分配的大小。相反,由于使用了不确定的值,程序的行为将是不确定的。numberOfStudents
这可以通过在成员初始化列表中初始化来解决。
归档时间: |
|
查看次数: |
3457 次 |
最近记录: |