Массивы C++ после объявления класса

Есть следующий код:

class Biblio {
public:
    char author[50], book_name[50];
    int year, pages, copies;

    void Info();
    void Dob();
    void Del();
} spisok[20];

Массив объявляется после закрывающей скобки, перед точкой с запятой. Функция добаления:

void Biblio::Dob() {
    int kol_book;
    int i;
    cout << "Введите количество книг, которые требуется добавить: ";
    cin >> kol_book;
    for (i = obsh_kol; i < kol_book; i++) {
        cout << "Автор: "; cin >> spisok[i].author;
        cout << "Название книги: "; cin >> spisok[i].book_name;
        cout << "Год издания: "; cin >> spisok[i].year;
        cout << "Количество страниц: "; cin >> spisok[i].pages;
        cout << "Количество экземпляров: "; cin >> spisok[i].copies;
        cout << endl;
    }
    obsh_kol = i;
}

Как написать функцию удаления? Присвоить пустой элемент не получается из-за используемого типа char, изменить char на string не получается из-за того, что ругается switch (передача управления в обход инициализации), объявить вектор вместо массива не получается, ругается компилятор. Функция удаления (на данный момент):

void Biblio::Del() {
    int bookid;
    obsh_kol--;
}

Ответы (0 шт):