Recently, I am learning the Inheritance.
Here is my code.

```
#include <iostream>

using namespace std;

class Pad{

public:

    void Show(){
        cout<<"this is pad ";
    }  

};

class Decorator: public Pad{
protected:
    Pad* mpad;
public:
    Decorator(Pad* ipad){
        mpad = ipad;
    }   

    void Show(){
        mpad->Show();

    }
};

class CoverDecorator: public Decorator{

protected:

public:
    CoverDecorator(Pad* ipad):Decorator(ipad){

    }

    void Show(){
        mpad->Show();
        cout<<"with Cover";
    }

};

int main()
{

    Pad* ipad = new Pad;

    Pad* Coverpad = new CoverDecorator(ipad);   
    Coverpad->Show();

    return 0;
}

```

But I found that it printed out "this is pad" instead of "this is pad with Cover" .
It means that in `Coverpad->Show()`, it implements the function `void Show()` of class Pad instead of implementing the `void Show()` of class CoverDecorator.

Why and How do I make it implement the `void Show()` of class CoverDecorator ?

Thanks!