比如類A 中 生成類B 一個物件, 然后類B中生成 類C、D、E的物件,
在類E中想呼叫類A的方法,或者通知A
那么有幾種方法實作呢? 這些類都不是視窗
uj5u.com熱心網友回復:
最省事兒的方法就是A類里定義一個訊息和一個對應的訊息處理函式,其他地方需要給A傳遞資料的時候直接發送個訊息就完事兒uj5u.com熱心網友回復:
SendMessage嗎? 如果這些類都在DLL里面,發送的訊息處理函式不是依賴于視窗的嗎?
uj5u.com熱心網友回復:
通過生成物件的時候,建構式引數中傳遞對應的物件。這樣傳遞過去uj5u.com熱心網友回復:
這個的確是一種方法
uj5u.com熱心網友回復:
使用全域變數uj5u.com熱心網友回復:
如果只是呼叫A中的某個方法,可以做成友元類,如果必須是最開始A生成的類物件,那就用函式的引數傳遞
uj5u.com熱心網友回復:
A類的方法設為staticuj5u.com熱心網友回復:
在類E中想呼叫類A的方法,則類E要拿到類A物件的指標,然后呼叫類A的成員函式。E如何拿到A的指標,可以通過建構式或類E的成員函式傳遞進去,也可以將指標保存到全域變數或類的靜態成員中。
一個低耦合的做法是使用function/bind,類E拿到類A物件bind后的fuction物件,再進行呼叫,可解除類E與類A之間的依賴與關聯關系。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/130511.html
標籤:基礎類
