You've answered 0 of 178 questions correctly. (Clear)
Question #133 Difficulty:
According to the C++23 standard, what is the output of this program?
#include <iostream>
class A
{
public:
A() { std::cout << "A"; }
A(const A &) { std::cout << "a"; }
};
class B: public virtual A
{
public:
B() { std::cout << "B"; }
B(const B &) { std::cout << "b"; }
};
class C: public virtual A
{
public:
C() { std::cout << "C"; }
C(const C &) { std::cout << "c"; }
};
class D: B, C
{
public:
D() { std::cout << "D"; }
D(const D &) { std::cout << "d"; }
};
int main()
{
D d1;
D d2(d1);
}
Hint:
Virtual inheritance is a technique used to avoid multiple copies of the same indirect base class in an object.
The call order of base constructors is well-defined.
Problems? View a hint or try another question.
I give up, show me the answer (make 3 more attempts first).
Mode : Training
You are currently in training mode, answering random questions. Why not Start a new quiz? Then you can boast about your score, and invite your friends.
Contribute
Android app
Get Sergey Vasilchenko's CppQuiz Android app.
C++ Brain Teasers
Get the book, support the site!