在非類函式中如何使用類的成員

2021-06-14 23:02:31 字數 555 閱讀 9928

在不屬於類成員的函式中是不能直接使用類的成員函式的,可以有如下方法解決:

1、傳遞類例項指標

這個方法簡單實用。如下**,類ctestdlg的成員函式onbutton中呼叫了非類成員函式noclassfun,而在noclassfun又需要使用成員函式updatedata和成員變數m_type,於是傳入類ctestdlg的指標,即可訪問。

void ctestdlg::onbutton() 

void noclassfun(ctestdlg *pdlg)

2、獲取類例項指標,然後通過其訪問相關成員

需要注意的是,在使用的時候應該注意獲取得到的指標的型別。如果訪問標準mfc的相關類成員,獲取後不經過強制轉換就可以訪問。但是如果是自己定義的類成員需要轉換成自己的類才行(如下面的ctestdlg的m_type成員)。

void ctestdlg::onbutton() 

void noclassfun(void)

注:獲取各種控制代碼,請參考

關於類成員函式在模板中的使用

實際工作中模板使用還比較多,而且使用類成員函式或者變數作為模板引數的情況是很多的,在這裡先小小舉個例子。非常簡單,但是在實際中確實非常常用,而且實用。我只是個測試類而已 class testclass double testfunc2 double val public int m testval ...

類的各種成員函式在類中是如何分配的?

個類,有成員變數 靜態與非靜態之分 而成員函式有三種 靜態的 非靜態的 虛的。那麼這些個東西在記憶體中到底是如何分配的呢?以乙個例子來說明 html view plain copy print?include iostream.h class cobject void cobject fun cob...

const 在類成員函式中的使用說明

在類中宣告成員函式的時候,當不允許成員函式修改到我們的物件的成員變數的時候,常常會在函式的名的尾部加上const 關鍵字修飾。這樣,如果我們無意中在函式內部修改到了資料成員,或者呼叫了其他的非const 函式的時候,編譯器會報錯。例如 include using namespace std clas...