我遇到了這個,其中指出:
成員函式指標不是指標。指向非成員函式的指標,包括靜態成員函式,都是指標。
上面的參考似乎表明指向非靜態成員函式的指標不是指標。
同樣,我在這里讀到:
成員指標是與普通指標不同的型別類別。
我的問題是上述參考在技術上(正式根據標準)是否正確?我的意思是我們使用術語“指標”指向非靜態成員函式。但是,如果它們實際上不是指標,那么為什么首先使用術語“指標”呢?我的理解是,這是因為盡管“指向成員函式的指標”在許多方面與普通指標不同,但它們在某一方面仍與普通指標相似,即它們指向某物(即保持地址)。
我也試過:
std::cout<<std::is_pointer_v<void(A::*)()><<std::endl;
這可以0確認指向非靜態成員函式的指標不被視為指標。
uj5u.com熱心網友回復:
所參考的陳述似乎得到了標準中的以下陳述的驗證。
來自dcl.mptr#3 的注釋:
[ 注意:另見 [expr.unary] 和 [expr.mptr.oper]。“指向成員的指標”型別與“指標”型別不同,即指向成員的指標僅由指向成員宣告符的指標語法宣告,而從不由指標宣告符語法宣告。C 中沒有“成員參考”型別。——尾注]
從basic.compound#3:
...除了指向靜態成員的指標,參考“指標”的文本不適用于指向成員的指標...
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/480190.html
上一篇:*&Var-1.0f是什么意思?
下一篇:無法退出snowsql命令提示符
