Bases Before Members
#include <iostream>
struct Trace {
const char* n;
explicit Trace(const char* s) : n(s) { std::cout << "+" << n; }
~Trace() { std::cout << "-" << n; }
};
struct Base {
Trace t{"B"};
Base() { std::cout << "(B)"; }
~Base() { std::cout << "[B]"; }
};
struct Member { Trace t{"M"}; };
struct Derived : Base {
Member m;
Trace t{"D"};
Derived() { std::cout << "(D)"; }
~Derived() { std::cout << "[D]"; }
};
int main() {
Derived d;
std::cout << "|";
}
What is the exact output?
Sign in to answer questions and track your progress
Sign In