3
我目前正在重新設計一個C++項目,並希望在有「有」(合成)關係的類需要訪問變量時可以如何處理變量,這些變量可以屬於父項,例如:處理組成關係中的變量
計算機對象有一個網卡對象。計算機對象具有所有者變量。例如
class Computer {
string get_owner(); // getter as an option?
private:
std::string owner = "baylesj";
NetworkCard nic;
}
class NetworkCard {
public:
NetworkCard(Computer *parent);
send_packet();
broadcast_owner(send_packet(m_parent->owner)); // this is kind of ugly
private:
Computer *m_parent;
}
比方說,我有一個需要所有者的網卡功能。當我在計算機中初始化時,是否更好地將所有者作爲網卡的成員變量傳遞,或者我應該在NetworkCard中有一個可以訪問Computer的成員變量,Getter/Setter或其他關係的父指針?我知道在孩子中有一個父指針是很常見的做法,但這是一個好主意/適當的OOP?
**計算機的事情就是例如,IRL它是別的東西,所以不要太籠罩它:)。
謝謝,這可以幫助我指出正確的方向。我特別感謝關於檢查構造函數參數數量的提示,以確定它是否應該是「is-a」。 – jaypb 2013-05-03 21:30:41
我很高興這很有幫助。你做一些後會感覺很好。 – 2013-05-04 02:57:33