Quizzes
Site Language: English
Українська
English
Русский
Programming Tests
Login
Sign Up
Programming Tests
Theory
Snippets
Papers
Landing
Android
Prices
FAQ
Cosmo Story
Terms and Conditions
Privacy Policy
Cookies Policy
Send Feedback
dynamic_cast
:
Content language: Русский
English
Какого приведения типов данных нет в C++ ?
dynamic_cast
Скомпилируется ли следующий код: struct A { }; struct B : A { }; int main() { B b; A a = dynamic_cast<A>(b); }
dynamic_cast
Исключение какого типа будет выброшено при выполнении кода dynamic_cast<const С*>(&В()); при данной иерархии классов: struсt А{ virtuаl ~А(){} }; struсt В : А{}; struсt С : А{};
dynamic_cast
Что произойдёт в результате попытки преобразования dynamic_cast: #include <iostream> using namespace std; class A{ public: virtual ~A() {} }; class B: public A{ }; int main(){ A a; try{ B & b = dynamic_cast<b &>(a); }catch(...){ } return 0; }
dynamic_cast
Какое исключение возбуждает dynamic_cast в случае невозможности преобразовать тип ссылки на класс?
dynamic_cast
В каких строках кода произойдут ошибки компиляции? 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; }
dynamic_cast
Что выведет данная программа? #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; }
dynamic_cast
Какой результат выполнения следующей программы? #include <iostream> using namespace std; class A { public: A() {} ~A() {} void f(){cout<<"A::f();"<<endl;} }; class B: virtual public A { public: B() {} ~B() {} void f(){cout<<"B::f();"<<endl;} }; int main(){ A * a = new B(); B * b = dynamic_cast<B *>(a); b->f(); delete a; }
dynamic_cast
Что произойдёт в результате попытки преобразования 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; }
dynamic_cast
← Prev
1
Next →
Sign Up Now
or
Subscribe for future quizzes