Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
1.88 Кб
Скачать
#include <iostream>
#include <locale>
using namespace std;

class Table {
    int size; 
    int priority;
public:
    // ОШИБКА 1: Параметр по умолчанию должен быть последним
    // Table(int s = 0, int p) : size(s), priority(p) { }
    Table(int s, int p = 0) : size(s), priority(p) { }
    
    virtual void print() = 0;
    
    // ОШИБКА 2: Нет виртуального деструктора
    virtual ~Table() {}
};

class StudTable : public Table {
    char* name;
    int gr;
public:
    // ОШИБКА 3: Нет конструктора для инициализации базового класса
    StudTable(const char* n, int g, int s = 0, int p = 0) : Table(s, p), gr(g) {
        name = new char[strlen(n) + 1];
        strcpy(name, n);
    }
    
    void print() override { 
        cout << "students table" << endl; 
    }
    
    ~StudTable() { 
        delete [] name; 
    }
};

// ОШИБКА 4: Нет точки с запятой после объявления класса
class AspTable : protected Table { 
    char* thesis; 
public:
    // ОШИБКА 5: Нет реализации чисто виртуальной функции
    void print() override {
        cout << "asp table" << endl;
    }
}; // Точка с запятой добавлена

int main() {
    setlocale(LC_ALL, "ru_RU.UTF-8");
    
    // ОШИБКА 6: Нельзя создать объект абстрактного класса
    // Table t;
    
    StudTable st("Иванов", 101);
    Table* tp = &st;
    
    // ОШИБКА 7: AspTable наследует protected, нельзя преобразовать к Table*
    // tp = new AspTable();
    
    StudTable* str = &st;
    cout << "Program" << endl;
    
    return 0;
}
Соседние файлы в папке Лаба6