爲何不用cout輸出非靜態成員函數地址,而要用printf

如何輸出類的非靜態成員函數地址 總結一下: C++調用非靜態的成員函數時,採用的是一種__thiscall的函數調用方式。我們輸出操作符<<沒有對void(__thiscall A:: *)()類型重載,編譯器將這種類型轉換爲bool類型,所以輸出了1;對於靜態函數,其調用方式並非__thiscall,<<有對它的重載,因此類的靜態函數可以直接用cout輸出函數地址 %p和%x的區別:
相關文章
相關標籤/搜索