xxx! 这是windows下的! 一万只草泥马跑过。
这几天在项目中碰到一个问题:
A是顶层的对象,有一个成员变量是系统参数p。
B是A对象的成员的成员,B负责通信。B在通信时,会使用到参数p。
第一个最直接的方案是:将A对象p的指针直接传递给B。
这样的话,固然可以很直接读取p,但是不仅可以读取p,也可以修改p。大问题是没有什么问题。
但是
- 如果出现”==”写成”=”的情况的话,相对来说不好查。
- 我tm有代码洁癖。
- 以后扩展的话,我自认为比较好。
方案二:
将p设置为private,然后在声明一个public的get方法,一个private的set方法。
升级版是比较吊,但是同时我想到了其他语言里面的property 属性。
然后想了一下C++好像没接触过属性,google了一把。
然后
方案三:
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自带属性!