BCB类中的索引属性

    技术2022-07-11  83

    类的实例用[]来取值,也就是类实现了索引功能。有两种方法,一种是用关键字__property;另一种是重载[]。如下:

    class TestInfo { private: int m_nData[100]; protected: //第一个参数为索引,第二个参数为值 void SetData(int index,int value) { m_nData[index] = value; } int GetData(int index) { return m_nData[index]; } public: TestInfo(){}; //第1种方法:重载[]取值,返回值为引用,则可以通过[]赋值,否则只能取值 int& operator [](int index) { return m_nData[index]; } //第2种方法重载() int & operator ()(int i) { return m_data[i]; }; //第3种方法用__property关键字 __property int Item[int index]={read=GetData,write=SetData}; };

    调用如下:

    TestInfo a; a.item[0] = 1; a[1] = 2; a(2) = 3; ShowMessage(a.item[0]);//属性取值 ShowMessage(a[1]);//中括号取值 ShowMessage(a(2));//小括号取值

     

    Processed: 0.010, SQL: 9