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自帶屬性!