#include <iostream>
#include <map>
#include <random>
#include <vector> 


class A {
    public:
        virtual void BB() = 0;
        void CC() {BB();}
};

class B : public A{
    public:
        void BB() {std::cout << "B.B";}
};

class C: public A {
    public:
        void BB() {std::cout << "C.B";}
};

int main()
{
    /*
    int8_t x = 1;
    x = x << 5;
    int8_t x2 = x << 2;
    int8_t x3 = x2 >> 2;
    int8_t x4 = x<< 2;
    x4 = x4 >> 2;
    std::cout << (int)x << "\n";
    std::cout << (int)x2 << "\n";
    std::cout << (int)x3 << "\n";
    std::cout << (int)x4 << "\n";
    */
    B b;
    C c;
    b.CC();
    c.CC();
    return 0;
}

