>>98
ちょっと>>98のサンプルソースを変更してみた。
違う結果が出ると思うので確認してみてホスイ。
-------------------------------------------
#include <stdio.h>
#include <time.h>
volatile int g_number=0;
struct CBASE {virtual int v()=0; int nv() { g_number++;return 0; }};
struct CDERIVED : public CBASE {virtual int v() { g_number++;return 0 ;}};
int main() {int i;clock_t t;CDERIVED c, *pc = new CDERIVED;
const int rep_cnt=200000000;
printf("ver%d\n", _MSC_VER);
t = clock();
for (i=0; i<rep_cnt; ++i) c.nv();
printf("nonptr-nv:%u\n", clock() - t);
t = clock();
for (i=0; i<rep_cnt; ++i) c.v();
printf("nonptr-v:%u\n", clock() - t);
t = clock();
for (i=0; i<rep_cnt; ++i) pc->nv();
printf("ptr-nv:%u\n", clock() - t);
t = clock();
for (i=0; i<rep_cnt; ++i) pc->v();
printf("ptr-v:%u\n", clock() - t);
return 0;}
-------------------------------------------