Qt“私人插槽:”這是什么?
AFAIK @Andrew 對上述問題的回答解決了這一問題。@borges 提到了重要的細節
當通過信號/槽機制呼叫該方法時,訪問說明符將被忽略。但插槽也是“正常”的方法。當您使用傳統方式呼叫它們時,會考慮訪問說明符
因此,原則上,我傾向于將插槽寫為私有。并且僅當期望在非連接背景關系中呼叫它們時才將它們標記為公共,我的意思是直接呼叫。
在其他作品中,這就像更喜歡私人插槽。但是,我沒有記錄在 Qt 的檔案中看到過這種心態。他們似乎只是public slots到處使用。我錯過了什么嗎?
當我們進行多執行緒處理并且可能在另一個執行緒中的物件中呼叫方法(插槽)時,是否會發生任何變化?
uj5u.com熱心網友回復:
插槽是類介面的一部分,因此應該是公共的。僅由于元系統作業方式的特殊性,舊的連接語法才有可能使用私有插槽。因此,從長遠來看,它們是副產品,而不是一些一等公民需要支持的。
如果您有私有插槽,您也不能使用新的連接語法(這是首選),因為您需要指向您無緣無故設為私有的成員函式的指標。
所以不,您不應該默認將插槽設為私有。僅當出現某些特定需求并說明您這樣做的原因時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/482817.html
