Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба6 / Laba 6 (6)
.cpp#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
