#include <iostream>
using namespace std;
class Parent{
public:
    Parent(){}
    virtual ~Parent(){}
    virtual showMessage() const{
        cout << "Parent\n";
    }
};
class Child:public Parent{
public:
    Child():Parent(){}
    virtual ~Child(){}
    virtual showMessage() const{
        cout << "Child\n";
    }
};
int main()
{
    Child Temp_child;

    Parent parent = Child();
    parent.showMessage(); // Parent
    Parent *parent2 = new Child();
    parent2->showMessage(); // Child
    Parent &parent3 = Temp_child;
    parent3.showMessage(); // Child
    Parent &&parent4 = Child();
    parent4.showMessage(); // Child
}


왜 1번은 Parent가 출력되고 2,3,4번은 Child가 출력됨?