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
virtual functions
:
Content language: Русский
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
← Prev
1
2
3
Next →
Sign Up Now
or
Subscribe for future quizzes