NOTE: Due to scheduled maintenance at our web host, we'll be down for up to two hours at July 24 12:00 AM UTC.

You've answered 0 of 118 questions correctly. (Clear)

Question #14 Difficulty: 2

According to the C++17 standard, what is the output of this program?

    #include <iostream>

class A {
  A() { std::cout << "a"; }
  ~A() { std::cout << "A"; }

class B {
  B() { std::cout << "b"; }
  ~B() { std::cout << "B"; }

class C {
  C() { std::cout << "c"; }
  ~C() { std::cout << "C"; }

A a;

void foo() { static C c; }
int main() {
  B b;


When are non-local static variables, local static variables and local automatic variables initialized and destroyed? Does it matter if we put static in front of A a?


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.


Create your own!

Android app

Get Sergey Vasilchenko's CppQuiz Android app.