2008 Вариант 1 (1119589)
Текст из файла
Вариант 1 _2008 Ф.И.О.___________________________________№ группы________
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1. Есть ли ошибки в реализации функций B::g() и main()? Если есть, объясните, в чем они заключаются. Для всех правильных операторов этих функций укажите, из какой области видимости выбираются участвующие в их записи имена, используя операцию разрешения области видимости «:: ».
int x = 0;
void f (int a, int b){x = a+b;}
class A {
int x;
public:
void f (){x = 2;}
};
class B: public A {
public:
void f (int a){::x = a;}
void g ();
};
void B::g() {
f();
f(1);
f(5 , 1);
x = 2;
}
int main () {
B b;
f(5);
f(‘+’, 6);
return 0;
}
2. Есть ли ошибки в приведенном фрагменте программы на С++? Если есть, то объясните, в чем они заключаются. Ошибочные конструкции вычеркнуть из текста программы. Что будет выдано в стандартный канал вывода при работе программы?
class X {
public: virtual int g (double x) { h (); cout << "X::g" << endl; return 1;}
void h () { t (); cout << "X::h" << endl;}
virtual void t () { cout << "X::t" << endl;}
};
class Z: public X {
public: int g (double y) { h (); cout << "Z::g" << endl; return 3;}
virtual void h () { t (1); cout << "Z::h" << endl; }
virtual void t (int k) { cout << "Z::t" << endl; }
};
int main( ){
X a; Z b; X * p = &b;
p -> g(1.5);
p -> h();
p -> t(5);
}
3. Является ли тип данных А из задания 1. абстрактным типом данных (пояснить ответ)? Перегрузить для этого класса префиксную операцию ++ в соответствии с принятым для нее в С++ смыслом.
4. Для объектов класса В из задания 1. определена функция ret:
B ret (B & x, B & y) { return x; }
Какие конструкторы и деструкторы и в каком порядке будут вызываться при работе следующего фрагмента программы
... ; { B b; b = ret (b, b); } ...
5. Описать прототипы двух перегруженных функций g из некоторой области видимости, для которых будут верны следующие обращения к ним:
g (1);
g (‘+’, ‘+’);
g (2.3);
g (3, “str”);
6. Для каких конструкций С++ существует понятие шаблона? Привести пример реализации какой-либо шаблонной конструкции.
7. Что будет выдано в стандартный канал вывода при работе следующей программы?
class X;
void F(X & x, int n);
class X {
public: X() { try { F(*this, -2); cout << 1 << endl; }
catch (X) { cout << 2 << endl; }
catch (int) { cout << 3 << endl; } }
X (X &) { cout << 12 << endl; }
};
class Y: public X {
public: Y () {cout << 4 << endl;}
Y (Y & a) {cout << 5 << endl;}
~Y () {cout << 6 << endl;}
};
void F(X & x, int n) { try { if (n < 0) throw x;
if (n > 10) throw 1;
cout << 7 << endl; }
catch (int) { cout << 8 << endl; }
catch (X&) { cout << 9 << endl; throw; }
}
int main() { try { Y a; }
catch (...) { cout << 10 << endl; }
cout << 11 << endl;
}
-
Есть ли ошибки в тексте приведенной программы? Можно ли исправить описание класса, не вводя дополнительных членов, чтобы программа стала верной? Если да, то как?
class A {
public:
int y;
void f () {cout << "f\n";}
};
int A::y;
int main () {
A::y = 1;
const A a;
a.f();
return 0;
}
9. Дать определение функции – друга класса. Привести пример класса, имеющего друга, описание этого друга, и пример его использования.
10. STL: Написать функцию, которая удваивает (добавляет еще один такой же) каждый элемент заданного контейнера-списка lst <int>, а затем распечатывает его элементы в обратном порядке.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.