C
|
C++
|
Objective-C
|
VC++
|
Win32
|
MFC
|
Java
|
Php
|
Delphi
|
Visual Basic
|
.Net
|
Networking
|
General
|
Games
|
Jobs
|
Javascript
|
Menu
Project Upload
Project Download
Articles
Programs
Search
Solution
pickSourcecode.com
Login
Register
About us
Contact us
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