Тесты
Язык сайта: Русский
Українська
English
Русский
Тесты по программированию
Вход
Регистрация
Тесты по программированию
Теория
сниппеты
Статьи
Главная
Android
Цены
FAQ
История Cosmo
Правила и условия сервиса
Политика конфиденциальности
Политика в отношении файлов cookie
Обратная Связь
virtual
:
Язык контента: Русский
English
Существует ли чисто виртуальный деструктор?
virtual
Какой вывод у данной программы? #include <iostream> class A { public: A() { std::cout << "A()"; } void memget() { std::cout << sizeof(*this); } virtual void f() { std::cout << "f()"; } virtual void f2() { std::cout << "f2()"; } virtual ~A() { std::cout << "~A()"; } }; struct VPTR { void (*function0)(void); void (*function1)(void); void (*function2)(void); }; int main() { A* ob = new A; VPTR** vPtr = reinterpret_cast<VPTR**>(ob); (*vPtr)->function0(); ob->memget(); delete ob; return 0; }
virtual
В каких строках кода произойдут ошибки компиляции? class B { virtual void f() {} }; class V { virtual void g() {} }; class X { }; class D : public B, virtual public V, virtual public X { }; int main() { D d; B* pb = &d; D* p1 = (D*)pb; // 1 D* p2 = dynamic_cast<D*>(pb); // 2 V* pv = &d; D* p3 = (D*)pv; // 3 D* p4 = dynamic_cast<D*>(pv); // 4 X* px = &d; D* p5 = (D*)px; // 5 D* p6 = dynamic_cast<D*>(px); // 6 return 0; }
virtual
Что будет выведено на экран (в какой последовательности будут вызваны деструкторы)? #include <iostream> using namespace std; class A { public: A () {} ~A() { cout << "~A";} }; class B : public A { public: B () {} ~B () { cout << "~B"; } }; int main () { A *b = new B (); delete b; return 0; }
virtual
Что выведет данная программа? #include <iostream> class base { public: base() { std::cout << "base()"; } virtual ~base() { std::cout << "~base()"; } void f() { std::cout << "base f()"; } }; class derived: public base { public: derived() { std::cout << "derived()"; } ~derived() { std::cout << "~derived()"; } void f() { std::cout << "derived f()"; } }; int main() { base* ob = new derived; dynamic_cast<derived*>(ob)->f(); return 0; }
virtual
Что выведет следующий код при создании экземпляра класса D? struct A { A() { cout << "A"; } }; struct B : virtual A { B() { cout << "B"; } }; struct C : virtual A { C() { cout << "C"; } }; struct D : B, C { D() { cout << "D"; } };
virtual
Каким будет результат выполнения следующего кода: #include "stdio.h" class Parent { public: void GetValue() { Count(); } private: virtual void Count() { printf("%d", 1); } }; class Child : public Parent { private: void Count() { printf("%d", 2); } }; int main() { Parent * obj = new Child; obj->GetValue(); return 0; }
virtual
Что произойдёт в результате попытки преобразования dynamic_cast: #include <iostream> using namespace std; class A{ public: virtual ~A() {} }; class B: public A{ }; int main(){ A * a = new A(); try{ B * b = dynamic_cast<B *>(a); }catch(...){ } return 0; }
virtual
Каким будет результат выполнения следующего кода: #include <iostream> struct A { virtual int f(int) { return 1; } }; struct B : A { template <typename T> int f(T) { return 2; } }; int main(int argc, char**argv) { A* pa = new B; std::cout << pa->f(1) << '\n'; delete pa; return 0; }
virtual
← Предыдущая
2
3
4
5
6
Следующая →
Зарегистрируйся сейчас
или
Подпишись на будущие тесты