Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Домашнее задание: Конструкторы. Деструкторы. Конструктор копирования.
- Написать класс, описывающий группу студентов. Описание студента
- также реализуется с помощью соответствующего класса.
- Студент:
- Поля:
- Имя;
- Год рождения.
- Группа:
- Поля:
- Факультет;
- Курс;
- Количество студентов;
- Студенты.
- Методы:
- Добавление студента в группу;
- Удаление студента из группы(по позиции);
- Вывод на экран всех студентов
- */
- # include <iostream>
- # include <cstring>
- using namespace std;
- struct Student
- {
- string name;
- int year;
- Student (int year, string name) : name (name), year(year)
- {};
- };
- struct Group
- {
- string faculty;
- string course;
- int studentCount = 0;
- Student students [studentCount]; // как пофиксить это, отдельно же работало
- void addStudent (Student a, Group students [], int &studentsSize)
- {
- incDarr(students, studentsSize);
- students [studentsSize] = a;
- };
- void removeStudent (Student students [], int studentsPos, int &studentsSize)
- {
- decrDarr(students,studentsSize,studentsPos);
- }
- void printStudents (Group students [], int studentsSize)
- {
- for (int i =0; i < studentsSize; i++)
- {
- cout << students[i].students.name << " " << students[i].students.year << endl;
- }
- }
- };
- int incDarr(Student *&arr, int &size )
- {
- Student *new_arr = new Student [size + 1]; // no default constructor exists for class "Student"
- // ну и как же тогда инкрементнуть этот массив
- for (int i = 0; i < size; i++)
- {
- new_arr[i] = arr[i];
- }
- delete [] arr;
- arr = new_arr;
- return size++;
- }
- void decrDarr(Student *&arr, int &size, int pos)
- {
- if (size <= 0)
- return;
- Student *tmp = new Student[--size]; // no default constructor exists for class "Student"
- // и как декрементнуть
- bool deletedFlag = false;
- for (int i = 0, j = 1; i < size; ++i, ++j)
- {
- if (i == pos)
- {
- deletedFlag = true;
- }
- if (!deletedFlag)
- {
- tmp[i] = arr[i];
- }
- else if (deletedFlag)
- {
- tmp[i]= arr[j];
- }
- }
- delete[]arr;
- arr = tmp;
- cout << "Deleted!" << endl;
- }
- int main ()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement