我们可以像对待 C++ 中的类列表一样对待 C 中的结构列表吗?

问题描述 投票:0回答:1

我以前用 C 编程,刚刚转向 C++,在尝试学习 OOP 的同时,我开始从事一个学校管理项目。

我可以使用构造函数创建 1 个对象,如下所示:

Student student1 = Student(string firstname, string lastname, int Age, char Gender, int group);

我如何制作一系列学生班级?

在C中使用struct我可以做这样的事情:

struct student{...};
struct student students[n] //n: number of student i want to add
for(int i=0;i<n;i++){
   students[i].name = ...; 
}

如何使用类获得相同的结果?

c++ oop
1个回答
2
投票

是的,您可以在 C++ 中执行相同类型的循环。除此之外,您需要使用

new[]
来创建数组,因为 变长数组不是标准 C++ 的一部分

class student{...};

student *students = new student[n];
for(int i = 0; i < n; ++i){
   students[i].name = ...; 
}
...
delete[] students;

更好的选择是使用

std::vector
来代替并让它处理数组管理,例如:

#include <vector>

class student{...};

std::vector<student> students(n);
for(int i = 0; i < n; ++i){
   students[i].name = ...; 
}
...

或者:

#include <vector>

class student{...};

std::vector<student> students;
students.reserve(n);
for(int i = 0; i < n; ++i){
   students.push_back(Student(params...));
   // or: students.emplace_back(params...);
}
...
© www.soinside.com 2019 - 2024. All rights reserved.