龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

在CB中如何自定义属性[properties]

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
Borland C++ Builder 对 C++ 进行了扩充,也可以象 Delphi 中一样自定义类属性。 对于简单类型的属性,可以如下定义: class TSome { protected: int a; int b; int s; int GetSum(void){ return s = a + b ; } void S

  Borland C++ Builder 对 C++ 进行了扩充,也可以象 Delphi 中一样自定义类属性。 对于简单类型的属性,可以如下定义:

  

  class TSome

  {

  protected:

  int a;

  int b;

  int s;

  int GetSum(void){ return s = a + b ; }

  void SetSum(int s){ this->s = s ; }

  public:

  //...其它代码

  __property int sum={read=GetSum,write=SetSum};

  //...

  

  

  };//end class

  

  

  --------------------------------------------------------------------------------

  

  对于数组类型的属性,可以如下定义:

  

  class TSome

  {

  private:

  TList *list;

  protected:

  void* GetItem(int i){ return (i >= 0 && i < list->Count ) ? list->Items[i] : NULL ; }

  void SetItem(int i,void*ptr){ list->Insert(i,ptr); }

  int GetCount(void){return list->Count;}

  public:

  TSome(void){ list = new TList( ); }

  ~TSome(void){ if( list ) delete list; }

  //...其它代码

  __property void* item[int i]={read=GetItem,write=SetItem};

  __property int count={read=GetCount};

  //...

  

  

  };//end class

  

  注重:“属性”使用起来确实很直观、很简洁,但作为商品化的软件,还应在采用属性的同时,不要遗忘了捕捉任何可能抛出的异常 [exceptions]。

  

精彩图集

赞助商链接