MFC一個類訪問另一個類成員對象的成員變量值


MFC中一個類要訪問另外一個類的的對象的成員變量值,這就需要獲得原來那個類對象的指針,其實有好幾種方法都可以實現。

比如維護一個單例模式、設置靜態變量等等。我們這里舉個列子,實現多個類之間的相互訪問。

一、示例:創建MFC對話框,實現對個對話框之間數據訪問

  1. 我們創建一個MFC對話框應用程序,命名為Visit工程.
  2. 對話框本身有一個主界面(CVisitDlg對話框),那我們再添加一個新界面CXXXDlg.

二、在主界面CVisitDlg類的頭文件中,添加一個static CVisitDlg *s_pDialog;指針

由於這個指針式靜態的,我們需要在類外初始化,那么我們在CVisitDlg .cpp文件中,寫上一行初始化代碼,直接初始化為空,如下:

CVisitDlg *CVisitDlg::s_pDialog = NULL; //(注意要寫在類外,不要寫在類實現函數里面)。

三、然后需要在CVisitDlg 主對話框生成的時候,給這個指針賦值為主對話框指針。

那么,我們可以在CVisitDlg 類的構造函數或者OnInitDialog()函數里面寫上如下一句代碼:

s_pDialog = this;

好了,現在我們只要在其他的類里面獲得這個靜態指針,就可以訪問這個類里面的所有數據了~~~~

四、獲得靜態指針

假設,我們想在CXXXDlg類中訪問CVisitDlg類的數據,如下代碼輕輕松松搞定:

CVisitDlg *pDia = CVisitDlg::s_pDialog;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM