有這樣一種需求,兩個類:
class a
;
class b
;
這種情況下,
a類是乙個全域性的控制類,它有一系列的演算法呼叫各個子模組,然而子模組在自己的任務中,有時需要**全域性控制類
a的演算法。設計一種什麼結構可以完成這種需求?
現在的方法是,把需要**的
a的演算法做成乙個介面,
a類從這個介面繼承,
b類擁有這個介面的乙個指標,並提供該介面指標的初始化函式。把a類的
this
指標初始化給
b,使得
b類可以通過該介面**
a類的演算法。按照這種思路,下面是乙個測試例子:
//介面
#ifndef
__ibs_h__
#define
__ibs_h__
class
ibs ;
#endif
//__ibs_h__
//
相當於b類:擁有介面的指標及初始化方法
#ifndef
__**all_h__
#define
__**all_h__
#include
"ibs.h"
class
c**all
;
#endif
//__**all_h__
#include
"stdafx.h"
#include
"./**all.h"
c**all
::c**all(void)
c**all
::~c**all(void)
void
c**all::**allprint(int
val)
void
c**all::ini(ibs* pbs)
//相當於a類:對介面繼承實現
#ifndef
__big_h__
#define
__big_h__
#include
"ibs.h"
#include
"**all.h"
class
cbig:
public
ibs ;
#endif
//__big_h__
#include
"stdafx.h"
#include
"./big.h"
cbig
::cbig(void)
cbig
::~cbig(void)
int
cbig::bigprint(int
val)
void
cbig::print(int
val) //
純虛方法實現
void
cbig::print(void)
void
cbig::ini(void)
shell程式設計 3
要定義乙個shell函式,我們只需要簡單地寫出它的名字,然後是一對空括號,再把有關的語句放在一對花括號中,如下所示 function name statements 實驗 簡單的函式 bin bash foo echo function foo is executing echo script st...
初學程式設計(3)
學習的語言 c 編譯環境 visual studio 2013 學習內容 關鍵字int short long unsigned char float double bool complex imaginary 運算子 sizeof 函式 scanf 如何讀取資料,操控資料 一 先上一段 includ...
Flash Socket 程式設計(3)
最近時間,其實很空閒,只是有一些事情還是沒有做出來,所以感覺很鬱悶。這兩天看pop3 和stmp的協議,看看flex能否開發乙個郵件傳送的程式。把最近寫一些類記錄下來,看看日後是否有用。寫乙個connection 繼承了 eventdispatcher 類,利用這個類可以進行事件分派。然後封裝一下s...