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

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

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]。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航