One example is when you are using a notification scheme. For instance, you have
Code:
class GfxWindowListener
{
public:
virtual void OnMove(int x, int y, int w, int h) = 0;
virtual void OnSelect() = 0;
virtual void OnDelete() = 0;
// ... //
};
class GfxWindowSelectAdapter : public GfxWindowListener
{
public:
virtual void OnMove(int x, int y, int w, int h) { }
virtual void OnSelect() = 0;
virtual void OnDelete() { }
};
class GfxWindow
{
// ... //
public:
RegisterListener(GfxWindowListener* list);
UnRegisterListener(GfxWindowListener* list)
};
When you write a class that implements GfxWindowSelectAdapter it will not typically want its overriden methods public. So you can do something like this
Code:
class Shape : private GfxWindowSelectAdapter
{
virtual void OnSelect() { cout << "OnSelect\n"; }
};