程序說明迭代通過向量包含在另一個類
我有三個類:A,B和C.
對於這個問題的目的,B類簡單地包含一個ID變量,和一個狀態變量,以及那些設置者和獲取者。
A類包含一個B對象向量,以及使用單位ID存儲,刪除,修改或比較單位的函數。
C類包含與黑盒交談的功能,該黑盒包含與A類相同的B向量,但具有更新的狀態。
這篇文章的結尾部分顯示了具有基本信息的類的粗略示例。
問題
在我的主窗口,我想通過在A類發現所有我希望得到的ID元素的矢量迭代,它傳遞到C級,並有C類返回更新的狀態。我畫了一個粗略的sequence diagram來說明我的意思。
我的問題是如何正確地通過在A級矢量迭代,以獲得ID,然後將其發送到C類
我在這一點上已經算得上是一個類似於以下(注:一類向量自動填充這個問題的目的):
int main() {
...
...
for(int i = 0; i < A.getVectorSize(); i++) {
char ID = A.getID(i);
bool state = C.getState(ID);
A.updateState(ID, state);
}
}
這不完全是非常輝煌的,這就是爲什麼我問有關如何執行此任務的建議。我已經制定了一個粗略的"Overview" image系統。對於我的圖紙是不可信的道歉。
std::vector<B>::iterator begin() {
return b_Storage.begin();
}
std::vector<B>::iterator end() {
return b_Storage.end();
}
:
類
class A {
public:
void updateStatus(char ID, bool status);
...
...
private:
vector<B> b_Storage;
}
class B {
public:
getters & setters
private:
char ID;
bool state;
}
class C {
public:
bool getState(char ID);
...
private:
...
}
聽起來就像在那裏應該有一個功能,爲你做到這一點。這樣你可以直接在函數中使用矢量。 – NathanOliver
我覺得它夠輝煌! – AhmadWabbi