Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* OUTPUT
- ... Draw ImageView ...
- View::render
- ImageView::render
- ... Draw Sprite ...
- View::render
- ImageView::render
- Sprite::render
- */
- ////////// View ///////////////
- class View{
- public:
- void Render(){
- render();
- }
- protected:
- virtual void render(){
- std::cout << "View::render" << std::endl;
- };
- };
- ////////// ImageView ///////////////
- class ImageView : public View{
- public:
- protected:
- virtual void render(){
- View::render();
- std::cout << "ImageView::render" << std::endl;
- }
- };
- ////////// Sprite ///////////////
- class Sprite : public ImageView{
- public:
- protected:
- virtual void render(){
- ImageView::render();
- std::cout << "Sprite::render" << std::endl;
- }
- };
- ////////// Utility ///////////////
- void Draw(View *vw){
- vw->Render();
- }
- ////////// main ///////////////
- int main(){
- std::cout << "... Draw ImageView ..." << std::endl;
- ImageView *imgvw = new ImageView;
- Draw(imgvw);
- delete imgvw;
- std::cout << "... Draw Sprite ..." << std::endl;
- Sprite *sp = new Sprite;
- Draw(sp);
- delete sp;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement