我目前正在重新设计一个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吗?
**计算机只是一个例子,在现实生活中它可能是其他东西,所以不要过于纠结。