書式#include <iostreamの> 使用して名前空間はstdを、クラスベース{ パブリック: ベース(){ COUT << " ベースで " << ENDL。 裁判所未満<< " 仮想ポインタ= " <<(int型 *)この <<てendl; 裁判所未満<< " のVtable =の住所 <<(" int型 *)*(int型 *)この <<てendl; 裁判所未満<<「のVtable第一項目で値=」<< のVtable第二のエントリで値= " <<(int型 *)*((int型 *)*(int型 *)これは +1)<<てendl; 裁判所未満<< " のVtable第三のエントリで値= " <<(int型 *)*((int型 *)*(int型 *)これは +2)<<てendl; coutの<<てendl; } 仮想ボイド F1(){COUT << " ベース:: F1 " << ENDL。} 仮想ボイド F2(){COUT << " ベース:: F2 " << ENDL。} }。クラスドライブ: : ドライブ(){ COUT << " ドライブで " << ENDL。 裁判所未満<< " 仮想ポインタ= " <<(int型 *)この <<てendl; 裁判所未満<< " のVtable =の住所 <<(" int型 *)*(int型 *)この <<てendl; 裁判所未満<< " のVtable第一項目で値= " <<(int型 *)*((int型 *)*(int型 *)この 0)<<てendl; 裁判所未満<<「バリューのVtableで第二のエントリ=」<<*)この +1)<<てendl; 裁判所未満<< " のVtable第三のエントリで値= " <<(int型 *)*((int型 *)*(int型 *)これは +2)<<てendl; coutの<<てendl; } 仮想ボイド F1(){COUT << " ドライブ:: F1 " << ENDL。} }。INTメイン(){ ドライブD。リターン 0; }
業績
ベースで 仮想ポインタ= 0012FF7Cの のVtable = 0046C0E0のアドレス のVtable第一項目で値= 004010F0 のVtable第三のエントリで値= 00000000 ドライブに 仮想ポインタ= 0012FF7Cの のVtable = 0046C0C8のアドレス のVtable第一項目で値= 0040121Cの のVtable第三のエントリで値= 00000000
ます。https://www.cnblogs.com/fanzi2009/archive/2009/09/11/1564935.htmlで再現