Контрольная работа С++ 2012(вар 1) (1119627)
Текст из файла
Контрольная работа №1. Вариант 1.
1 | 2 | 3 | 4 | 5 |
ФИО ________________
Задание 1. Решить задачу.
Есть ли ошибки в приведенном фрагменте программы на С++? Если есть, то объясните, в чем они заключаются. Ошибочные конструкции вычеркнуть из текста программы. Что будет выведено на экран?
class A {
public:
virtual void f() {
cout << "A_f ";
}
virtual void g() = 0;
void h(int) {
cout << "A_h ";
}
};
class B : public A {
public:
void g() {
cout << "B_g ";
}
virtual void h() {
cout << "B_h ";
}
};
class C: public B {
public:
void h(int) {
cout << "C_h(int) ";
};
void f() {
cout << "C_f ";
};
void h() {
cout << "C_h ";
};
};
main() {
B b;
C c;
A *pa;
B *pb;
pa = &c; pa->f(); pa->g(); pa->h(0); pa->h();
pb = &b; pb->f(); pb->g(); pb->h(0); pb->h();
pb = &c; pb->f(); pb->g(); pb->h(0); pb->h();
}
Задание 2. Можно ли построить следующее дерево наследования классов? (Базовые классы – вверху). Если возможно, то написать заголовки классов. Если нет, то объяснить ВСЕ причины невозможности.
C D
D A B
F
Задание 3. Написать класс и решить задачу.
Напишите класс Myachik, производный от std::exception. Опишите в классе функцию “const char * what() const”, любые конструктор и деструктор так, чтобы следующая программа выполнялась:
int main() {
try{
throw Myachik(13);
}
catch (std::exception& ex) {
std::cout << ex.what();
}
return 0;
}
Подробно опишите действия в программе.
Задача 4. Реализовать класс.
Придумать структуру-класс S, отображающую преподавателя. Класс должен содержать массив mark (оценки). Переопределить функции класса так, чтобы здесь:
S osin(2);
osin += 3;
значение всех переменных массива mark увеличивалось бы на 3.
Задача 5. Решить задачу.
class A {
protected:
virtual ~A() = 0 { cout << "A::~A\n"; }
public:
A() { cout << "A::A\n"; }
};
class B: public A {
A* x;
public:
B() { cout << "B::B\n"; x = new B(); }
~B() { cout << "B::~B\n"; }
};
int main()
{
A* pA = new B();
}
Есть ли ошибки в приведенном фрагменте программы на С++? Если есть, то объясните, в чем они заключаются, и исправьте их, не меняя функцию main() и не удаляя функций из классов. Что будет выведено на печать?
4
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.