| Предыдущая тема | Оглавление | Следующая тема |
Отметьте верные варианты галочками, после чего нажмите на кнопку «Результаты» внизу.
Внимание! Для того, чтобы разблокировать следующий урок, Вам необходимо набрать не менее 60ти баллов. Если Вы не наберёте 60ти баллов, Вы не сможете открыть следующий урок.
Если Вам не удаётся набрать 60 и более баллов, почитайте советы.
| Абстрактный класс - это: | |
|---|---|
| класс, в котором все функции должны быть чистыми виртульными функциями | |
| класс, имеющий хотя бы одну чистую виртульную функцию | |
| класс, который не содержит функций-членов | |
| Какие из объявлений допустимы? | |
class shape
{
public:
shape(){};
virtual void draw()=0;
};
class rect: public shape
{
public:
rect(){};
void draw(){cout << " Draw rectangle ";}
};
class circ: public shape
{
public:
circ(){};
void draw(int){cout << " Draw circle ";}
};
| |
| circ *x6; | |
| circ x5; | |
| rect *x4; | |
| rect x3; | |
| shape *x2; | |
| shape x1; | |
| Укажите верные высказывания: | |
| Виртуальной функцией может быть глобальная функция | |
| Виртуальной функцией может быть только нестатическая функция-член класса | |
| Виртуальный вызов можно подавить, используя полное имя функции (имя_класса::имя_функции) | |
| Укажите высказывание верное относительно следующего фрагмента программы: | |
#include <iostream.h>
class A {
public:
A();
void print() { cout << "Base A ";}
};
class B: public A {
public:
B();
void print(){cout << "Class B ";}
};
void main() {
A x1;
B x2;
A *px2 = &x2;
px2->print();
}
| |
| Выбор функции print() (A::print() или B::print()) зависит от значения указателя | |
| Выбор функции print() (A::print() или B::print()) зависит от типа указателя | |
| Выбор функции print() происходит на этапе выполнения программы | |
| Выбор функции print() происходит на этапе компиляции программы | |
| Укажите высказывание верное относительно следующего фрагмента программы: | |
#include <iostream.h>
class A {
public:
A();
virtual void print() { cout << "Base A ";}
};
class B: public A {
public:
B();
void print(){cout << "Class B ";}
};
void main() {
A x1;
B x2;
A *px2 = &x2;
px2->print();
}
| |
| Выбор функции print() (A::print() или B::print()) зависит от значения указателя | |
| Выбор функции print() (A::print() или B::print()) зависит от типа указателя | |
| Выбор функции print() происходит на этапе выполнения программы | |
| Выбор функции print() происходит на этапе компиляции программы | |
| Укажите ошибки, допущенные в данном описании класса: | |
class A
{
static int aa;
virtual int bb;
public:
virtual A();
virtual ~A();
virtual GetS();
virtual static SetS(int A);
};
| |
| Деструктор класса не может быть объявлен как виртуальная функция | |
| Для функции GetS() не задан тип возвращаемого значения | |
| Конструктор класса не может быть объявлен как виртуальная функция | |
| Спецификатор static не может быть применен к данным-членам класса | |
| Спецификатор virtual не может быть применен к данным-членам класса | |
| Статические функции-члены класса не могут быть виртуальными | |
| Что будет выведено на экран? | |
#include <iostream.h>
class A {
public:
A();
virtual void print() { cout << "Base A ";}
};
class B: public A {
public:
B();
void print(){cout << "Class B ";}
};
void main() {
A x1;
B x2;
B *px1 = &x1;
A *px2 = &x2;
px1->print();
px2->print();
}
| |
| Base A Base A | |
| Base A Class B | |
| Class B Base A | |
| Class B Class B | |
| Произойдет ошибка компиляции | |
| Что выведется на экран в результате выполнения программы? | |
#include <iostream.h>
class X
{
public:
virtual void Output() {cout << 2;}
};
class Y : public X
{
public: void Output() {cout << 1;}
};
void main()
{
X *p, a;
Y b;
p = &a;
p->Output();
p = &b;
p->Output();
}
| |
| 1 | |
| 11 | |
| 12 | |
| 2 | |
| 21 | |
| 22 | |
Отвечая на вопросы теста, Вы набрали 88 баллов из 100-та.
| Назад | Печать | Следующая тема |