C++ 使用 property 属性 的方法

来源:互联网 发布:有些通讯网络维护 编辑:程序博客网 时间:2024/05/23 11:38

xxx! 这是windows下的! 一万只草泥马跑过。

这几天在项目中碰到一个问题:
A是顶层的对象,有一个成员变量是系统参数p。
B是A对象的成员的成员,B负责通信。B在通信时,会使用到参数p。

第一个最直接的方案是:将A对象p的指针直接传递给B。
这样的话,固然可以很直接读取p,但是不仅可以读取p,也可以修改p。大问题是没有什么问题。
但是

  1. 如果出现”==”写成”=”的情况的话,相对来说不好查。
  2. 我tm有代码洁癖。
  3. 以后扩展的话,我自认为比较好。

方案二:
将p设置为private,然后在声明一个public的get方法,一个private的set方法。
升级版是比较吊,但是同时我想到了其他语言里面的property 属性。

然后想了一下C++好像没接触过属性,google了一把。

然后
方案三:

MSDN属性

struct S {     int i;     void putprop(int j) {         i = j;     }     int getprop() {        return i;     }     __declspec(property(get = getprop, put = putprop)) int the_prop;  };  int main() {     S s;     s.the_prop = 5;     return s.the_prop;  }  

大概例子就是这样,就是这个套路

__declspec(property(get = getprop, put = putprop)) int the_prop; 

大概就是这样 如果有错误,麻烦您指正。谢谢。

哪位路过的大哥给个解方案,我现在只能用方案2了。

只能说
山穷水尽疑无路,柳暗花明又一村。
踏破铁鞋无觅处,得来全不费工夫。
众里寻他千百度。蓦然回首,那人却在,灯火阑珊处。

我大QT自带属性!

0 0
原创粉丝点击