pickzy.com

C  |  C++  |  Objective-C  |  VC++  |  Win32  |  MFC  |  Java  |  Php  |  Delphi  |  Visual Basic  |  .Net  |  Networking  |  General  |  Games  |  Jobs  |  Javascript  |  




Menu

pickSourcecode.com


        

 




 

Cpp > Programs

 

cpp virtual example and tutorials

//----------------------------------------------------------------------  
//  Listing  9.1.  Misusing  the  typeid()  operator.  
//----------------------------------------------------------------------
     

#include <iostream.h>
#include <typeinfo.h>
     

class MWindow

{

public:

    MWindow(){};

    virtual ~MWindow(){};

     

    
void show(){}; //non-virtual
    
//...
};

     

class MDialogBox:public MWindow

{

public:

    MDialogBox(){};

    ~MDialogBox(){};

     

    
void show(){};
    
//...
};

     

void f(MWindow& w)
{

    typedef MDialogBox& RDIALOG;

     

    
if (typeid(w)==typeid(MWindow))
        w.show();

    else

    
if (typeid(w)==typeid(MDialogBox))
        RDIALOG(w).show();

}

     

int main()
{

    MWindow* pw=new MWindow;

    MWindow* pd=new MDialogBox;

     

    f(*pw); 
//invokes  MWindow::show()
    f(*pd); 
//invokes  MDialogBox::show()
     

    delete pw;

    delete pd;

     

    return 0;

}

 
Privacy Policy | About Us