亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1483 | 回復(fù): 1
打印 上一主題 下一主題

[C++] [Design]請教一個關(guān)于C++ class design的問題,不知道可不可以發(fā)這里? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-07-26 21:39 |只看該作者 |倒序瀏覽
知道這兒的牛人很多,我找不到合適的版塊,如果發(fā)的地方不對,版主幫忙移動一下,謝謝。

如下所示,datarecord是一個class,直接對應(yīng)的是數(shù)據(jù)庫中的內(nèi)容,可以理解為raw data. DataRecordBase中包含了一個DateRecord指針,封閉一些操作.  datarecordA and datarecordB 繼承于datarecordBase,對于不同的數(shù)據(jù),提供不同的內(nèi)容。
然后,外部有兩個class DataAccessA和DataAccessB ,分別操作對象 DataRecordA and DataRecordB?墒俏野l(fā)現(xiàn) func1 (兩個class 中),操作的邏輯是非常相似的,幾乎可以說是一樣:即從數(shù)據(jù)庫中讀取dataRecord, 構(gòu)造并生成DataRecordA,返回給外部(通過out param)。
所以,我想寫一個base class for DataAccessA and DataAccessB,在base class提供一個函數(shù),這樣derived class就不用寫duplicate的代碼了?墒莃ase class只能操作datarecord,而不能是dataRecordA 和 datarecordB。
請教:除了用函數(shù)模板外,還有什么方法可以實現(xiàn)這個需求么?

謝謝。




  1. class DataRecord
  2. {
  3. private:
  4. int x;

  5. public:
  6. DataRecord(int a):x(a){};
  7. };

  8. class DataRecordBase
  9. {
  10. private:
  11. DataRecord* p;

  12. public:
  13. DataRecordBase(DataRecord* a):p(a){};
  14. ~DataRecordBase(){if (NULL != p) delete p;};

  15. };

  16. class DataRecordA : DataRecordBase
  17. {
  18. public:
  19. DataRecordA(DataRecord* a);
  20. };

  21. class DataRecordB : DataRecordBase
  22. {
  23. public:
  24. DataRecordB(DataRecord* a);
  25. };

  26. class DataAccessA
  27. {
  28. public:
  29. DataAccessA();

  30. void func1(DataRecordA*& p);
  31. };

  32. class DataAccessB
  33. {
  34. public:
  35. DataAccessB();

  36. void func1(DataRecordB*& p);
  37. };
復(fù)制代碼

論壇徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16賽季CBA聯(lián)賽之青島
日期:2016-07-05 12:36:0515-16賽季CBA聯(lián)賽之廣東
日期:2016-06-29 11:45:542015亞冠之全北現(xiàn)代
日期:2015-07-22 08:09:472015年辭舊歲徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39獅子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技術(shù)圖書徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
2 [報告]
發(fā)表于 2010-07-26 23:03 |只看該作者
除了用函數(shù)模板外,還有什么方法可以實現(xiàn)這個需求么?
------- 將不同的部分提取出來唄,通過參數(shù)傳進去

舉個qsort的例子吧,所有類型不同的有:數(shù)據(jù)塊大小 和 比較函數(shù)
于是它的原型是 void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP