c 呼叫靜態方法

2021-06-27 17:58:51 字數 992 閱讀 8060

在使用qt的時候,程式設計風格都是基於c++的,現在要實現乙個定時器的功能,即:當事件a發生,開啟定時器,以固定時間計時。當定時器時間到了之後,在觸發事件b中關閉定時器。在這期間,有可能a事件又發生一次,則計時器重新計時。這個功能可以用到具有檢測功能的需求中。如:a事件為需要連續重複執行的事件,但需要檢測當a事件在執行一次之後,如果在規定時間內沒有執行事件a,則執行事件c。

實現方法:

使用qt庫中的qtimer功能實現,很容易就實現了,只不過需要將自定義的類繼承自qobject,因為只有qobject才有connect方法,才能將時間觸發與待處理事件聯絡起來。

現在不想使用qtimer,因為不需要qobject的其他功能。在linux系統下,可以使用系統的signal函式和alarm時鐘來做管理。這個方法網上也很多,現在需要解決的問題是如何在c++的類中,呼叫signal函式並且觸發自定義事件。

過程如下:

觸發事件my_fun,定義為靜態方法,並且宣告在cpp檔案開始。

原因:1.如果不是靜態方法,則類的方法無法被signal函式呼叫

2.如果定義在h標頭檔案中,則靜態方法可能會被多次引用。

在類的方法裡呼叫signal(sigalarm, my_fun),即可將時鐘與方法my_fun關聯

//-----------h標頭檔案-------------

// file name : test.h

#include

#include

#include

class test

//----------------cpp檔案---------------

// test.cpp

static void my_fun();

#include "test.h"

test::start()

void my_fun()

int main()

如此即可!

C 靜態方法 非靜態方法呼叫總結

總結的c 靜態方法 非靜態方法的呼叫,有不正確的請指正 操作靜態方法 非靜態方法 同個類中呼叫 方法名 前面不用加類名或物件名 例項化類後呼叫 即new一次 不同類中呼叫 類名.方法名 例項化類後呼叫 即new一次 新建乙個測試用的類,演示靜態方法和非靜態方法在同個類中的呼叫 class testc...

物件呼叫靜態方法 C 中靜態成員 靜態方法 靜態類

平時在用c 做開發的朋友都知道,不論是靜態成員還是靜態方法還是靜態類都是用static關鍵字來修飾。也就是說只要看到了static,那麼它後面的東西就是靜態!在c 中,靜態成員或者靜態方法是屬於類的,不是屬於物件。假如我們有乙個類myclass,需要例項化這個 類,就應該這麼做 myclass my...

靜態方法呼叫非靜態方法

靜態方法不能 直接 呼叫非靜態變數,非靜態方法可以引用靜態變數。靜態方法不屬於物件,是屬於類的,不需要例項化 而非靜態變數是屬於物件的,需要先例項化。在乙個類的靜態成員中去訪問其非靜態成員,因為類的靜態成員先於類的非靜態成員存在,訪問乙個記憶體中不存在的東西會出錯。相反,非靜態方法可以引用靜態變數。...