我有两个类是Student和StudentArray。制作动态数组对象并初始化它
在课堂上的学生,我已经宣布了一些学生的属性,如姓名,身份证,年龄等
在StudentArray类,我想创建学生类型的数组。 StudentArray类还包含一些功能,如插入,将数据插入学生类型数组中。我想在Array的相同索引处添加一个学生的完整学生数据,如姓名,年龄,ID等,但我无法理解如何做到这一点。
我也无法理解如何初始化StudentArray类的构造函数中的数组。这是我迄今为止所做的。在StudentArray类
学生班级
class student
{
public:
string name;
int id;
int age;
string semester;
string degreeprogram;
};
StudentArray类
class StudentArray
{
public:
student *s;
int used;
StudentArray();
~StudentArray();
void input();
void Insert(string n,int i,int a, string s, string dp);
int Search(string n, int i);
void DeleteAnyStudent(string n, int i);
void DeleteAll();
void Edit(string n, int i);
void show();
};
构造StudentArray类的
StudentArray::StudentArray()
{
s = new student[100];
for(int i=0;i<100;i++)
{
s[i] = new student(); //ERROR HERE
}
used = 0;
}
插入函数
void StudentArray::Insert(string n,int i,int a, string s, string dp)
{
s[used].name = n; //ERROR HERE
s[used].id = i; //ERROR HERE
s[used].age = a; //ERROR HERE
s[used].semester = s; //ERROR HERE
s[used].degreeprogram = dp; //ERROR HERE
used++;
}
我正在使用代码块。
在StudentArray的构造函数,错误消息是"no match for operator 'operator=' (operand types are ;student' and 'student*')". In the insert function, the error message is "error: request for member 'id' in 's.std::basic_string<_CharT, _Traits, _Alloc>::operator[]<char, std::char_traits<char>, std::allocator<char> >(((std::basic_string<char>::size_type)((StudentArray*)this)->StudentArray::used))', which is of non-class type 'char'|"
在插入功能,同样的错误被扔在每个之后,我写了“ERROR HERE”行,如姓名,身份证变量只有名称或年龄等变化
“错误在这里”。它是编译时错误还是运行时错误?任何错误消息? –
此外,为什么不'std :: vector'? –
我使用的代码块,所以它只会引发错误,当我建立和运行程序。在StudentArray的构造函数中,错误消息是“不匹配运算符'operator ='(操作数类型是; student'和'student *')”。在插入函数中,错误消息是“错误:s中成员'id'的请求。std :: basic_string <_CharT,_Traits,_Alloc> :: operator [],std :: allocator >(((std :: basic_string :: size_type)((StudentArray *)this) - > StudentArray :: used))',它是插入函数中的非类类型'char'|“ –
Yousaf