2012-01-05 74 views
0

我有這個個人圖書館管理項目。我有一些Media衍生類別列表和Person列表。我還必須有一個Loan的列表,這些列表指的是Media的實例和Person的實例。我在類Loan中使用了兩個指針來實現它。 問題是用戶必須能夠刪除MediaPerson列表中的實例。我的問題是,如何檢查指向該實例的Loan以防止用戶刪除它? 如果是這樣的話,你也可以建議我一個更好的實現Loan類的方法。個人圖書館項目,如何解決這個問題?

如果您需要,我會提供更多關於項目結構的信息。 請考慮這是一個介紹性的C++ OO課程的項目,所以我會避免使用過於先進的技術。

+0

std :: shared_ptr <> – vivek 2012-01-05 19:56:23

回答

0

如果你想堅持非常簡單的C++代碼,那麼你有很多方法可以實現這一點。您可以循環遍歷所有貸款,並檢查它們是否都不適用於您要刪除的個人或媒體。

另外就像貸款是指人和媒體的實例一樣,它可以讓人和媒體也持有對貸款的引用。這種方法的一個優點是您可以輕鬆檢測媒體項目何時已被借出,複雜情況是一個人可能有多於一個媒體項目被借出,並且在媒體項目返回時有更多內務處理。

+0

我實現了一個簡單的引用計數系統:'Media'和'Person'類有一個'int'計數器,它在創建和銷燬時由'Loan'實例遞增和遞減。當程序想要移除一個媒體實例時,它會檢查這個計數器,如果它大於0,它會提醒用戶。可以嗎? – Pincopallino 2012-01-09 18:50:43

0

引用計數和共享指針,雖然這在你的入門課程中被接受是值得懷疑的。因此,我建議你的設計應該重新考慮,以避免多重引用。

+0

我該如何實現基本的引用計數? – Pincopallino 2012-01-06 19:50:39