嗨,伙计们,我希望你帮我完成我的任务,我试图解决它,但有一些事情让我:我知道如何创建名称和id
string Name; int Id;
bt wt是否指向动态分配的成绩数组的指针:s:s:S? 我知道如何声明一个指针:double * Grades;
这是作业......
使用以下数据成员创建Class StudentGrades:
它包括以下成员函数:
在另一个文件中创建一个C ++程序,该程序提示用户输入数据以创建StudentGrades类的四个对象。第一个对象(std1)有5个等级,第二个(std2)有6个等级,第三个(std3)有4个等级,第四个(std4)没有等级和数据。 然后将std2复制到std4并将std1分配给std3。然后打印四个对象的详细信息
嘿,我解决了我的任务,我试图运行它,但它无法正常工作请告诉我问题在哪个方案#include <iostream>
using namespace std;
class student_grades{
private:
string name,n;
int Id,i;
double* grades[];
public:
student_grades();
student_grades(sting, int);
student_grades(const student_grades&);
void set(string name,int Id){
cout << "enter the name and the ID";
cin >> n >> i;
n = name;
i = Id;
}
void get(){
return i;
return n;
}
void student_grades (student_grades&opr){
name = name.opr;
Id = Id.opr;
grades[] = grades[].opr;
}
void student_info(){
cout << "the name of the student is:" << name;
cout << "the id for the srudent is:" << Id;
grades = new double[];
cout << "the grades of the student is:" << grades[] << endl;
delete []grades;
}
};
student_grades::student_grades() {}
student_grades::student_grades(string name, int Id) {
name=" ";
Id=0;
}
student_grades::student_grades(const student_grades& copy) {
name=copy.name;
Id=copy.Id;
}
int main() {
student_grades std1;
std1.set();
cin >> std1.grades[5];
std1.get();
student_grades std2;
std2.set();
cin >> std2.grades[6];
std2.get();
student_grades std3;
std3.set();
cin >> std3.grades[4];
std3.get();
student_grades std4;
std4.set();
cin >> std4.grades[];
std4.get();
std1 = std3;
std2 = std4;
cout << std1 << std2 << std3 << std4;
return 0;
}
答案 0 :(得分:0)
动态分配的数组是一个在运行时之前没有给定特定大小的数组,与固定数组声明在编译时不同。 fixed 数组的声明如下所示:
int grades[500];
该数组将为500个整数分配内存并保持这种状态,除非你将其销毁或调整大小。
创建动态分配的数组看起来更像是这样:
int* grades = NULL; // A declaration in your StudentGrades class
int n = <get size from somewhere>; // Makes the size "dynamic"
grades = new int[n]; // This definition could be in your StudentGrades ctor,
// with n being a parameter.
然后,您可以继续将所有数组元素初始化为0,或者根据需要使用其他值填充数组。完成阵列后,请将其清理干净。这可能在你的析构函数中:
delete [] grades;
grades = NULL;