#include <iostream>

class A
{
    std::string k;
    int j;
  public:
    A() { std::cout << "ctor A" << std::endl;};
    ~A() { std::cout << "dtor A" << std::endl;};
};

class B : public virtual A
{
  public:
    B() { std::cout << "ctor B" << std::endl;};
    ~B() {std::cout << "dtor B" << std::endl;};
};

int main()
{
  {
    std::cout << "building an A obj" << std::endl;
    A a;
  }
  {
    std::cout << "building a  B obj" << std::endl;
    B b;
  }
  return(0);
}