Two classes: Data is parent and DerivedData is child. Why does cout output "Data"?
class Data {
protected:
    int _value {};
public:
    Data(int value) : _value{ value } { }
    std::string getName() const { 
        return "Data"; 
    }
    int getValue() const { 
        return _value; 
    }
    void setValue(const int i) { 
        _value = i; 
    }
};
class DerivedData: public Data {
public:
    DerivedData(int value) : Data{ value } { }
    std::string getName() const { 
        return "DerivedData"; 
    }
    int getValueDoubled() const { 
        return _value * 2; 
    }
};
DerivedData dd{ 5 };
Data d = dd;
Data& rd = dd;
cout << rd.getName() << endl;
This code will output "Data", but why?
 
     
    