Тесты
Язык сайта: Русский
Українська
English
Русский
Тесты по программированию
Вход
Регистрация
Тесты по программированию
Теория
сниппеты
Статьи
Главная
Android
Цены
FAQ
История Cosmo
Правила и условия сервиса
Политика конфиденциальности
Политика в отношении файлов cookie
Обратная Связь
virtual functions
:
Язык контента: Русский
English
Что будет выведено на консоль в результате выполнения программы? #include <iostream> struct A { char foo() { return 'A';} }; template<class T> struct B : public T { virtual char foo() {return 'B';} }; template<class T> struct C : public T { virtual char foo() {return 'C';} }; int main(int argc, char* argv[]) { A* a = new A(); A* b = new B< A >(); A* c = new C< A >(); A* d = new B< C< A > >(); std::cout << a->foo() << b->foo() << c->foo() << d->foo(); return 0; }
virtual functions
Что выведет на консоль следующий программный код? #include <iostream> class Base { public: virtual void Foo() { std::cout << "Base::Foo "; } virtual ~Base() {} }; class Derived: public Base { public: int Foo() { std::cout << "Derived::Foo "; return int();} }; int main() { Base *d = new Derived; d->Foo(); delete d; return 0; }
virtual functions
Что будет выведено на экран в результате работы программы? #include <iostream> using namespace std; struct B { void f() { cout << "B"; } }; struct C: B { void f() { cout << "C"; } }; int main() { C c; B *b1 = &c; b1->f(); B b2 = c; b2.f(); return 0; }
virtual functions
Что выведет программа? #include <iostream> using namespace std; class a { private: virtual void f(int) { cout<<"a int"; } }; class b : public a { public: class a; friend void f(double) { cout<<"b double"; } void f(int) { cout<<"b int"; } }; int main (void) { b* o = new b; o->f(0.5); return 0; }
virtual functions
В некоторых источниках советуют инициализировать нулём поля экземпляра структуры. Как поведет себя следующий фрагмент кода при компиляции, при запуске? #include <iostream> #include <typeinfo> using namespace std; class A { public: virtual const type_info& Type() { return typeid(*this); } }; struct B : public A { public: int field1; int field2; int field3; B() { memset(this, 0, sizeof(B)); } }; int main() { A* b = new B(); cout << b->Type().name(); return 0; }
virtual functions
Что произойдет при компиляции и выполнении программы? #include <iostream> using namespace std; class A { public: A() { CoolVirt("A()"); } ~A() { CoolVirt("~A()"); } protected: void CoolVirt(const char* str) { f(str); } virtual void f(const char* str) = 0; }; class B: public A { public: B() { CoolVirt("B()"); } ~B() { CoolVirt("~B()"); } protected: void CoolVirt(const char* str) { f(str); } void f(const char* str) { cout << str << endl; } }; int main() { B b; return 0; }
virtual functions
Что будет выведено на консоль в результате выполнения следующей программы? #include <iostream> class Base { public: virtual void Foo() { std::cout << "Base::Foo "; } virtual ~Base(){} }; class Derived: public Base { public: void Foo(int k = 0) { std::cout << "Derived::Foo "; } }; int main() { Base *d = new Derived; d->Foo(); delete d; return 0; }
virtual functions
Что напечатает следующий код: #include <iostream> using namespace std; class B { public: virtual void msg () { cout << "classB"; } }; class D : public B { public: virtual void msg() { cout << "classD"; } }; int main() { B * var = new D; var->msg(); // .... return 0; }
virtual functions
Допустимо ли определение чисто виртуального метода следующим образом: class Abstract { public: virtual void pureVirtual() = 0 { // реализация } };
virtual functions
Что будет выведено на экран? #include<iostream> class Base { public: virtual void f() { std::cout << "Base"; } }; class Child : public Base { public: int f() { std::cout << "Child"; } }; int main() { Child c; c.f(); }
virtual functions
← Предыдущая
1
2
3
Следующая →
Зарегистрируйся сейчас
или
Подпишись на будущие тесты