C++实现“隐藏实现,开放接口”的方案

2020-01-06 13:23:11王冬梅
  •   //--------------------------------------------------------------- 
  • //function:   // GenerateId 生成本文档内唯一的文本对象ID 
  • //Access:  // virtual public  
  • //Parameter:  //Returns: 
  • // int - 返回ID  //Remarks: 
  • // ...  //author: luoweifu 
  • //---------------------------------------------------------------  virtual int GenerateId() = 0; 
  •   //--------------------------------------------------------------- 
  • //function:   // AddPage 添加一页 
  • //Access:  // virtual public  
  • //Parameter:  //Returns: 
  • // IPage* - 返回页对象  //Remarks: 
  • // ...  //author: luoweifu 
  • //---------------------------------------------------------------  virtual IPage* AddPage() = 0; 
  • };   
  • IPage.h:   
  • #pragma once   
  • class ITextUnit;   
  • class IPage  { 
  • public:  virtual ~IPage(void){} 
  •   public: 
  •   //--------------------------------------------------------------- 
  • //function:   // AddTextUnit 添加一个文本单元 
  • //Access:  // virtual public  
  • //Parameter:  //Returns: 
  • // ITextUnit* - 文本单元对象  //Remarks: 
  • // ...  //author: luoweifu 
  • //---------------------------------------------------------------  virtual ITextUnit* AddTextUnit() = 0; 
  • };   
  • ITextUnit.h   
  • #pragma once   
  • class ITextUnit  { 
  • public:  ~ITextUnit(void){} 
  •   public: 
  • //---------------------------------------------------------------  //function:  
  • // GetId 获得ID  //Access: 
  • // virtual public   //Parameter: