1. dynamic_cast
#include <iostream>
#include <ctime>
using namespace std;
class Base
{
public:
virtual void show(){};
};
class Derived : public Base
{
public:
virtual void show(){};
};
int main(int argc, char* argv[])
{
Base* pTmpBase = new Derived();
Derived* pTmpDerived = NULL;
time_t begin = time(NULL);
// 10亿次
int count = 1000*1000*1000;
for (int i=0; i<count; i++)
{
// 20 秒
//pTmpDerived = dynamic_cast<Derived*>(pTmpBase);
// 2秒
//pTmpDerived = static_cast<Derived*>(pTmpBase);
// 3秒
//pTmpBase->show();
// 空循环,运行时间也是2~3秒内
}
time_t end = time(NULL);
printf("Using seconds %d.\n ", end - begin);
system("pause");
return 0;
}