gpt4 book ai didi

不使用 vector 的c++动态类

转载 作者:太空宇宙 更新时间:2023-11-04 13:51:17 25 4
gpt4 key购买 nike

所以我碰巧完成了我的家庭作业计划,但今天在讲座中,我的好教授告诉我们,我们不允许使用 STL 作为 vector 或列表来创建我们的数据库。我们还被告知我们需要所有变量都是私有(private)的。我做这个程序完全错了。这是我目前所拥有的。

在class.h中

class Student {
private:
string last;
string first;
int student_id;
int enroll_id;
int *grades;
}

class Gradebook {
public:
Gradebook();
void newCourse(Gradebook *info);
private:
string name;
int course_id;
int count_course;
int enroll;
Student *students;
public:
//Constructor
}

我知道我可以使用构造函数访问 Gradebook 的私有(private)成员,这样我就可以在我的 Gradebook 中设置每个成员。

创建newCourse的函数

Gradebook::Gradebook() {

students = new Student;
course_id=0;
count_course=0;
enroll = 0;
}

Gradebook::newCourse(Gradebook *info) {

int i, loop=0;

cout << "Enter Number of Courses: ";
cin >> loop;

info = new Gradebook[loop];

for(i=0; i<loop; i++) {

cout << "Enter Course ID: ";
cin >> info[info->count_course].course_id;

cout << "Enter Course Name: ";
cin >> info[info->count_course].name;

info->count_course++

}
}

所以类(class)现在已经设置好了。由于 Student 中的变量是私有(private)的。我不能只使用指向变量的指针来访问它们。谁能告诉我怎么做?

最佳答案

好吧,我不知道怎么问这个问题,但我确实回答了。但我希望大家对我的方法发表意见。

class Student {
public:
void setID(int ID){student_id = ID; };
int getID(){return student_id);
private:
string last;
string first;
int student_id;
int enroll_id;
int *grades;
};

class Gradebook {
public:
Gradebook();
void newCourse(Gradebook *info);
void newStudent(Gradebook *info);
private:
string name;
int course_id;
int count_course;
int count_student;
int enroll;
Student *students;
public:
//Constructor
}

void Gradebook::newStudent() {

int i, loop=0;

int student=0;
string lastName;

cout << "Enter number of students: ";
cin >> loop;

for(i=0; i<loop; i++) {

cout << "Enter Student ID: ";
cin >> student;

info->students[info->count_student].setID(student);

cout << "Enter Last Name: ";
cin >> lastName;

info->students[info->count_student].setLast(lastName);

info->count_student++;

}
}

这样做有什么不妥吗?

关于不使用 vector 的c++动态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com