Lammps設計模式分析

2021-09-24 04:14:27 字數 1573 閱讀 5004

問題:為什麼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...

設計模式分析 組合模式

對於樹形結構,當容器物件 如資料夾 的某乙個方法被呼叫時,將遍歷整個樹形結構,尋找也包含這個方法的成員物件 可以是容器物件,也可以是葉子物件,如子資料夾和檔案 並呼叫執行。遞迴呼叫 由於容器物件和葉子物件在功能上的區別,在使用這些物件的客戶端 中必須有區別地對待容器物件和葉子物件,而實際上大多數情況...

各種設計模式分析

簡單工廠模式 通過工廠類對業務邏輯選擇封裝化,把業務邏輯封裝到工廠方法中.優點是使業務邏輯和業務實現真正 分離.缺點是擴充套件起來非常不方便.需要修改原來的工廠實現 試用於業務比較多,但是變化比較小的情況 抽象工廠模式 通過抽象工廠,對比起來,他可以輕易載入返回的業務類。且可以對返回類抽象化.實現業...