__property是属性关键字,用来定义类的某种属性。是Borland为C++Builder类的扩充。目的是简化操作,加强对函数成员封装,
举例说明:
对于没有属性的类如下
class TMyClass
{
private:
int data;
public:
int GetData() { return data; }
void SetData(int iData) { data = iData; }
};
TMyClass MyClass;
int myData;
myData = MyClass.GetData(); //读函数成员方法
MyClass.SetData(myData); //写函数成员方法
对于有属性的类如下
class TMyClass
{
private:
int Fdata;
int GetData(){ return Fdata; }
void SetData(int iData){ Fdata = iData; }
public:
__property int Data = {read = GetData, write = SetData};
};
TMyClass MyClass;
int myData;
myData = MyClass.Data; //读属性成员方法
MyClass.Data = myData; //写属性成员方法
声明一个属性,必须首先声明一个属性数据的存放者(Fdata)数据成员,和属性的读写成员,一般在私有部分实现。
只引出Data属性成员,对GetData,SetData函数成员进一步封装,简化了对外接口,并且用变量的等式操作,简化了书写复杂性。