快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

ag旗舰厅手机版_在CB中如何自定义属性properties



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:

vag旗舰厅手机版oid* GetItem(int i){ return (i >= 0 && i Count ) ? list->Items[i] : NULL ; }

voag旗舰厅手机版id Seag旗舰厅手机版tItem(int i,void*ptr){ liag旗舰厅手机版st->ag旗舰厅手机版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]。

您可能还会对下面的文章感兴趣: