I have the following code:
class A {
public:
    A() { cout << "A()" << endl; }
    void f() { cout << "A" << endl; }
};
class B : public A {
public:
    B() { cout << "B()" << endl; }
    void f() { cout << "B" << endl; }
    void ff() { cout << "ff()" << endl; }
};
int main()
{
    A a = B();
    B b;
    a = b;
}
How calling A a = B(); will be different from A a = A();? Why is the conversion from derived class to base class possible?
 
    