• __property 关键字的使用


    https://blog.csdn.net/lixingshi/article/details/41277577

    __property是属性关键字,用来定义类的某种属性。

    给类定义属性,是BCB的扩展,为了说明属性的本质,先看一个标准C++类是如何获取或设置数据字段的:

    1.  
      class myClass
    2.  
      {
    3.  
      private:
    4.  
      int data;
    5.  
       
    6.  
      public:
    7.  
      int GetData() const{ return data; }
    8.  
      void SetData(int aData){ data = aData; }
    9.  
       
    10.  
      };

    上面例子中,data是私有字段,GetData和SetData分别用于对data的读和写。如果改用BCB来写这个类,一般是这样的:

    1.  
      class myClass
    2.  
      {
    3.  
      private:
    4.  
      int data;
    5.  
      int GetData(){ return data; }
    6.  
      void SetData(int aData){ data = aData; }
    7.  
       
    8.  
      public:
    9.  
      __property int Data = {read=GetData, write=SetData};
    10.  
      };

    在这里,GetData和SetData分别成了属性Data的读写方法,属性则是对字段data读写方法的封装。可以更方便、直观的对类的数据字段进行操作。

    例子中,如果对data的操作没有特殊处理,还可以略去读写方法:
    __property int Data = {read=data, write=data};

    也可以对不直接是类字段的数据定义属性,如,我们要获取字段data的平方数,可以直接写一个私有的读方法:
    int GetSquare(){ return data * data; }
    然后定义一个平方数属性:
    __property int Square = {read=GetSquare};  // 这里没有定义写方法,因此该属性是只读的。

    上面只是__property最基础的用法,__property还可以定义类字段流的存取,这里就不一一解说了。

    如有错误,请各位大侠指正。

    补充:
    上面例子中,属性Data可以视为对类字段的封装;而属性Square则可理解为对函数方法的映射。

  • 相关阅读:
    C语言寒假大作战01
    第十二次作业
    第十一次作业
    第十周作业
    第九次作业
    第8周作业
    第七次作业
    C语言I作业12—学期总结
    第一周作业
    C语言l博客作业02
  • 原文地址:https://www.cnblogs.com/xiangtingshen/p/11158703.html
Copyright © 2020-2023  润新知