問題:為什麼main函式中,對son->daughterplus的呼叫可以改變daughter中的值?
#include
class
pointers};
class
son:
protected pointers
~son()
void
daughterplus()
;};class
daughter
:protected pointers
~daughter()
};void son::
daughterplus()
class
father
~father()
;};pointers::
pointers
(class
father
*father)
:son
(father-
>son)
,daughter
(father-
>daughter)
intmain()
先看pointer類,這個類宣告的時候還沒有後面的類,所以他的子類成員變數定義的時候要加class,也可以先宣告了後面再定義,這麼寫:
class
son;
class
daughter
;class
father
;class
pointers
};
然後仔細看這個son跟daughter,繼承於pointer,pointer裡面放著的正是它們兩個的指標引用,所以在son的函式裡面可以直接呼叫daughter的變數。也就是說,son裡面有兩個指標的引用,乙個指向自己,另乙個指向daughter,同理daughter也是。
為什麼son可以呼叫daughterplus()可以將daughter裡面的變數a++?
f-
>son-
>
daughterplus()
;//f->son沒問題,f裡面有son這個指標
//son->daughterplus()也沒問題,daughterplus是son的乙個成員函式
問題在daughterplus()裡面:
class
son:
protected pointers
~son()
void
daughterplus();};
void son::
daughterplus()
實際上是這麼訪問的:
分析lammps檔案 LAMMPS學習系列(14)
例項二 1 由於分子動力學的結果一般要經過多次模擬,再進行統計分析,所以為了簡化我們交作業時的繁雜過程,在正式介紹例項二之前,這裡先介紹乙個lammps中常用的迴圈計算方法 輔助命令variable,clear,jump,next 以及quit命令的結合使用,以之前介紹的弛豫過程為例,in.rela...
設計模式分析 組合模式
對於樹形結構,當容器物件 如資料夾 的某乙個方法被呼叫時,將遍歷整個樹形結構,尋找也包含這個方法的成員物件 可以是容器物件,也可以是葉子物件,如子資料夾和檔案 並呼叫執行。遞迴呼叫 由於容器物件和葉子物件在功能上的區別,在使用這些物件的客戶端 中必須有區別地對待容器物件和葉子物件,而實際上大多數情況...
各種設計模式分析
簡單工廠模式 通過工廠類對業務邏輯選擇封裝化,把業務邏輯封裝到工廠方法中.優點是使業務邏輯和業務實現真正 分離.缺點是擴充套件起來非常不方便.需要修改原來的工廠實現 試用於業務比較多,但是變化比較小的情況 抽象工廠模式 通過抽象工廠,對比起來,他可以輕易載入返回的業務類。且可以對返回類抽象化.實現業...