所以我在閱讀有關Handle in C的文章,並意識到我們將句柄實現爲void指針,所以「無論」我們得到的對象/數據類型,我們可以將void指針投射到那種Object /數據並獲得它的價值。所以,我基本上有兩個問題:Handle,Void Pointer,C++中的對象
1.如果讓在下面的例子中如果我們的價值傳遞給函數dosomething(21,2,2)
從Handle in C
typedef void* HANDLE;
int doSomething(HANDLE s, int a, int b) {
Something* something = reinterpret_cast<Something*>(s);
return something->doit(a, b);
}
採取的說,這是否意味着價值HANDLE點爲21,如果是的話,當我們鍵入任何對象時,如何將它轉換爲該對象,是否可以使用它,如同在本例中一樣,所以在其他字中指向對象Something,something
將存儲值21.
2.其次,鏈接還會顯示「因此,在您的代碼中,您只需傳遞HANDLE即可一個不透明的價值「它實際上意味着什麼?爲什麼我們要「處理」?如果有人可以給出更令人信服的使用對象的句柄示例,那將非常棒!
_does意思是HANDLE指向的值是21_否,這意味着''是21.我懷疑這個內存地址有什麼有趣的地方。 – bejado
我可能是錯的,但在代碼中,您將其轉換爲另一種類型。實際的地址永遠不會改變 – efekctive