К каким методам и атрибутам базового класса имеет доступ производный класс?
public 
private 
protected 
Объявлены классы:
class A { public: int a; A() { a = 0; }; }; class B : public A { public: B():A() {}; }; class C : protected A { public: C():A() {}; }; class D : private A { public: D():A(){}; }; Созданы объекты и ссылки: B* b = new B; C* c = new C; D* d = new D; Какие из следующих операторов приведут к ошибкам компиляции?
A* p; 
b->a = 7; 
A* p = b; 
c->a = 7; 
A* p = (A*)c; 
d->a = 7; 
A* p = d; 
Если записано
class A { public: void f() { cout << 1; } }; class B : public A { public: void f() { cout << 2; } }; то что будет напечатано?B b; b.f();
2 
2 1 
1 2 
1 
Определите результат работы данной программы для
A a; B b; b.f();class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
Верен ли данный код:
class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
Если записано
class A { public: void f() { cout << 1; } }; class B : public A { public: void f() { cout << 2; } }; то что будет напечатано?B b; A& a=b; a.f();
2 1 
1 2 
1 
Что обозначает запись
class A { virtual f() = 0; };?
В каком порядке вызываются конструкторы и деструкторы?
Конструктор базового класса Деструктор базового класса Конструктор производного класса Деструктор производного класса
Имеется программный код:
class A { public : int a, b; protected : int z; private : short i; } A1; class B : public A { private : int k; int func (float d); } B1; Выберите для него верные определения функцииfunc:1. int B::func(float d) { B1.i = b + a; return b; } 2. int B::func(float d) { k = this.b + a; return b; } 3. int B::func(float d) { B1.z = this->b + a; return b; }
1 
2 
3 
Что будет выведено на экран?
class A { public: A() { x = 1; }; int f() { return x; }; protected: int x; }; class B { public: B() { x = 2; }; int f() { return x; }; protected: int x; }; class C : public A, public B { }; C* c = new C; cout << c->f(); delete c;
1 
2 
Какие операторы можно использовать для выделения и освобождения динамической памяти?
new, delete 
malloc, delete 
new, free 
malloc, free 
Какие библиотечные функции можно использовать для выделения и освобождения динамической памяти?
new, delete 
malloc, delete 
new, free  
malloc, free  
Имеется запись (monstr- базовый класс,daemon- производный):// Описывается указатель на базовый класс: monstr *р: // Указатель ссылается на объект производного класса: р = new daemon: При выполнении виртуального методаp->draw(1, 1, 1, 1);будет вызван
monstr 
daemon 
monstr 
Для чего нужны виртуальные базовые классы?
Объявлены классы:
class base { int x, y; public: int fun(); }; class derived: protected base { int z; public: int fun1(); }; Определите тип доступа из классаderivedк членамx, y, funклассаbase.
x,y – недоступны, fun – protected 
x,y – private, fun - protected 
x,y, fun – protected 
Определены классы:
class base { int x, y; public: int getx() { return x; } int gety() { return y; } }; class Derived : private base { int z; public: int getz() { return z; } base::getx; }obj; Какой из следующих операторов приведет к ошибкам компиляции?
cout << obj.getx() << endl 
cout << obj.gety() << endl 
cout << obj.getz() << endl 
Определены классы:
class base { int x, y; public: base() { x = 0; y = 0; } int getx() { return x; } int gety() { return y; } }; class Derived : private base { int z; public: Derived() : base() { z = 0; } int getz() { return z; } base::getx; }; main() { Derived *obj = new Derived; /* ??????????? */ } Какие из следующих операторов приведут к ошибкам компиляции?
cout << obj.getx() << endl; 
cout << obj->getx() << endl; 
cout << obj->gety() << endl; 
Определены классы:
class base { int x, y; public: base() { x = 0; y = 0; } int getx() { return x; } int gety() { return y; } }; class Derived : protected base { int z; public: Derived() : base() { z = 0; } int getz() { return z; } base::gety; }; main() { Derived *obj = new Derived; /* ??????????? */ } Какие из следующих операторов приведут к ошибкам компиляции?
cout << (*obj).gety() << endl; 
cout << obj->getx() << endl; 
cout << obj.getz() << endl; 
Выберите правильную синтаксическую конструкцию наследования:
class имя_класса : список_базовых_классов { список_элементов класса} 
class имя_класса : : список_базовых_классов { список_элементов класса} 
class имя_класса ( список_базовых_классов ){ список_элементов класса} 
class имя_класса [ список_базовых_классов] { список_элементов класса} 
Произойдет ли ошибка при компиляции этого кода?
class Channel { public: void SetNumber (int n) { number = n;}; int GetNumber() const { return number;}; int number;}; int main() { private : int n;} Channel ch; {Channel ch; ch.number = 9; ch.SetNumber(10); Channel ch2(2);}
n 
n=10 
Определены классы:
class A { void fun() { cout << "функция класса A\n"; } }; class B : private A { public: void fun() { cout << "функция класса B\n";} }; class C : private B { public: void fun() { cout << "функция класса C\n";} }; Что будет напечатано в результате выполнения операторов:C *obj; obj = new C; obj->fun();
С 
А 
В 
Определены классы:
class A { public: void fun() { cout << "функция класса A\n"; } }; class B: public A { public: void fun() { cout << "функция класса B\n"; } }; class C: public B { public: void fun() { cout << "функция класса C\n"; } }; Что будет напечатано в результате выполнения операторов:C obj; obj.A::fun();
С 
А 
В 
Что обозначает следующая запись?class Block<int, 100>{ public: Вlоск() {р = new int [100];} ~Block {delete [ ] p;} operator int * ( ); protected: int * p; }; Block<int, 100>:: operator int *(){ return р; }
100 целых величин 
100 
Какие функции называются чисто виртуальными?
private 
=0 
Что обозначает следующая запись?
class В{ / * ... * / }; class С: public В{ /* ... */ }; С* с = new С; В* b = dynamic_cast<B*>(c);
Дано определение классов:
class MyClass0 { public: int x; //... }; class MyClass1 : MyClass0 { //... }; Какой статус доступа будет иметь компонент"x"класса"MyClass0"в производном классе"MyClass1"?
public 
protected 
private 
Выберите правильные утверждения относительно следующего кода:class hero{ friend class mistress; } class mistress{ void f1 (); void f2(); }
f1 является дружественной по отношению к классу hero 
f2 является дружественной по отношению к классу hero 
f1 не является дружественной по отношению к классу hero 
f2 не является дружественной по отношению к классу hero 
Можно ли осуществить явное преобразование типа объекта к типу абстрактного класса?
Каков будет результат , если конструктор абстрактного класса вызовет чисто виртуальную функцию?
Может ли конструктор быть виртуальным?
Можно ли создать виртуальную функцию, имитирующую виртуальный конструктор?
Можно ли использовать виртуальную функцию, имитирующую виртуальный конструктор, для размножения объектов?
Что будет напечатано в результате работы программы:
class A { public: A() { cout << "A "; }; virtual A* new_A() { return new A(); } }; class B : public A { public: B(){ cout << "B " ;}; A* new_A() { return new B(); } }; void fun(A* p1, A* p2) { A* p3 = p1->new_A(); A* p4 = p2->new_A(); } void main() { A* p1 = new A; B* p2 = new B; fun(p1,p2); }
A A B A A B 
A В B A В B 
А А А В В В