#include
using namespace std;
class inondelegatingunknown
;class iunknown;
class a:public iunknown,public inondelegatingunknown;
void a::queryinte***ce(void **ppv)
void a::addref()
void a::release()
void a::nondelegationaddref()
void a::nondelegationqueryinte***ce(void **ppv)
void a::nondelegationrelease()
void a::shiyan()
{cout<<"shiyan"{ a a;
void** p=0;
cout<<&a<
cout<<(iunknown*)(&a)((inondelegatingunknown*)(&a))->nondelegationaddref();
((inondelegatingunknown*)(&a))->nondelegationqueryinte***ce(p);
((inondelegatingunknown*)(&a))->nondelegationrelease();
((iunknown*)(inondelegatingunknown*)(&a))->addref();
((iunknown*)(inondelegatingunknown*)(&a))->queryinte***ce(p);
((iunknown*)(inondelegatingunknown*)(&a))->release();
cout<<&a0012ff78
//this指標的值
0012ff78
//第乙個基類的虛函式表的指標
0012ff7c
//第二個基類的虛函式表的指標
0012ff7c
//不相干的指標轉化沒有意義
nondelegationiunknown' addref
good!
nondelegationiunknow's queryinte***ce
good!
nondelegationiunknow's release
very good!
shiyan //值得注意,因為shiyan在inondelegatingunknown是第二個函式
nondelegationiunknow's queryinte***ce
good!
nondelegationiunknown' addref
good!
0012ff78
0012ff78 //this指標的值
有虛繼承的類其有幾個虛繼承的基類則該類就有幾個虛表
對於下面的測試 64位系統 c類繼承了a b 均為虛類,所以在結果中sizeof c 結果為32 include using namespace std class a private int a class b float b class c public a public b static do...
純虛函式與基類指標陣列的應用
題目內容 定義抽象基類shape,其中純虛函式printname 輸出幾何圖形的名稱和相應的成員資料 純虛函式printarea 計算幾何圖形的面積。並由shape類派生出5個派生類 circle 圓形 資料成員為半徑 square 正方形 資料成員為邊長 rectangle 長方形 資料成員為長和...
純虛函式與基類指標陣列的應用
使用虛函式是實現動態聯編的基礎。正確使用虛函式,需要滿足下列條件 1 具有符合型別相容規則的公有派生類層次結構。2 在派生類中重新定義基類的虛函式,對其進行覆蓋。3 通過基類指標或基類引用訪問虛函式。1 題目內容 定義抽象基類shape,其中純虛函式printname 輸出幾何圖形的名稱和相應的成員...