首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MFC 在普通函數操作對話框類成員變量:傳遞引用或指針實現

     編輯:程式設計綜合問答

需求:在全局/普通函數 void f() 中修改 CtestDlg 的成員 e。

方案一:傳遞對象引用(推薦)

void f(CtestDlg& dlg) {
    dlg.e = 100; // 直接訪問 public/protected 成員
}

// 調用
f(*this); // 在成員函數中
f(dlgInstance); // 其他上下文

方案二:傳遞指針

void f(CtestDlg* pDlg) {
    if (pDlg) pDlg->e = 100;
}

方案三:靜態成員/單例(不推薦)

將 e 改為 static,但破壞封裝,多實例共享數據易出錯。

最佳實踐

  • 優先**將邏輯封裝進類內部**作為成員函數,避免外部函數直接操作成員。
  • 必須外部操作時,傳遞 this 指針/引用,保持對象語義。
  • 若需跨模塊調用,定義純虛接口,對話框實現接口,外部持有接口指針。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved