我目前正在重新设计一个 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;
}
假设我在网卡中有一个需要所有者的功能。当我在 Computer 中初始化时,将所有者作为网卡的成员变量传递是否更好,或者我应该在 NetworkCard 中有一个可以访问 Computer 成员变量、Getter/Setter 或其他关系的父指针?我知道在孩子中有一个指向父母的指针是相当普遍的做法,但这是一个好主意/正确的 OOP 吗?
**计算机的东西只是例如,IRL 它是其他东西所以不要太挂在它上面:)。