宣告類時系統並不分配記憶體單元,而定義物件時系統會給每個物件分配記憶體單元
1.slots也是普通的c++方法,它們可以是virtual;可以被過載;
可以使private、protected、public,可以像其它c++方法一樣有各種型別的引數。
它們唯一的區別就是signal與slot是相互鏈結起來的,slot函式在每次signal函式被emit時會被呼叫。
2.宣告乙個訊號要使用signals關鍵字,signals前面不可加public、private和protected進行修飾,因為只有定義該訊號的類及其子類
才可以發射該訊號;宣告乙個槽需要使用slots關鍵字,乙個槽可以是private、public或者protected型別的,槽也可以被宣告為虛函式,
這與普通的成員函式是一樣的,也可以像呼叫乙個普通函式一樣來呼叫槽。槽的最大特點就是可以和訊號關聯。
3.訊號的宣告是在標頭檔案中進行的,qt的signals關鍵字指出進入了訊號宣告區,隨後即可宣告自己的訊號。例如,下面定義了三個訊號:
signals:
void mysignal();
void mysignal(int x);
void mysignalparam(int x,int y);
4.從形式上講訊號的宣告和普通的c++函式是相同的,不過訊號卻沒有函式體定義,另外,訊號的返回型別都是void,不要指望能從訊號返回什麼有用資訊。
訊號由moc自動產生,他們不應該在.cpp檔案中實現。
5.需要繼承自qobject或其子類;
在類宣告的最開始處新增q_object巨集;
槽中的引數的型別要和訊號的引數的型別相對應,且不能比訊號的引數多;
訊號只用宣告,沒有定義,且返回值為void型別。
在qt實際程式設計時,最好確保工程中每個訊號都至少有乙個槽函式與之相連線,即不存在無用訊號;並且確保工程中每個槽函式都在cpp中實現。
6.成員函式可以訪問本類的任何成員,而普通函式只能訪問物件的公用成員
7.同乙個類的不同物件的資料是不一樣的,因此要為每個物件的資料成員分配記憶體單元
同乙個類的不同物件的函式是一樣的,因此將同類的所有物件的函式放在乙個公共的區域
NOI2019五校聯考2019 3 5 總結
五校聯考的第一天,有點小緊張 看題t1 一道弱智構造題,不多說 t2感覺不太會 t3本質不同子串行數有點眼熟 開場就很快的寫完t1,然後自己寫了個spj放在那裡測 淦t2花了很長時間去想t2一些奇奇怪怪的做法 感覺是sa的height陣列上建笛卡爾樹貪心一類的,手解了幾個方程,沒什麼頭緒。這時候時間...
重學C語言(二)
一 列印100 200 之間的素數 一 include include include intisprime int x return1 int main system pause return0 二 結果 三 總結 素數是個數學概念,指的是在所有比1大的整數中,除了1和它本身以外,不再有別的約數,...
重學c語言4
1關鍵字 auto 由於區域性變數都是自動變數,所以c語言將它省略 break 中斷 case char 字元 const 常變數 continue 中斷當前迴圈 default 錯誤 do do語句 double雙精度浮點數 else else語句 enum 列舉 extern 引入外部符號 ex...