C++ 关联方法是否应该调用对应的';联想法?
调用关联方法关联另一个对象的方法是正确的,还是应该调用这两个方法从这些函数外部关联它们?多谢各位C++ 关联方法是否应该调用对应的';联想法?,c++,C++,调用关联方法关联另一个对象的方法是正确的,还是应该调用这两个方法从这些函数外部关联它们?多谢各位 #include <set> class B; class A { public: void associate(B &b) { b_.insert(&b); b.associate(*this); } private: std::set<B*> b_; }; class A { public
#include <set>
class B;
class A {
public:
void associate(B &b) {
b_.insert(&b);
b.associate(*this);
}
private:
std::set<B*> b_;
};
class A {
public:
void associate(A &a) {
a_.insert(&a);
a.associate(*this);
}
private:
std::set<A*> a_;
};
#包括
乙级;;
甲级{
公众:
空联酒店(B&B){
b.插入(&b);
b、 合伙人(*本);
}
私人:
std::集b_2;;
};
甲级{
公众:
无效合伙人(A&A){
a.插入(&a);
a、 合伙人(*本);
}
私人:
std::设置一个;
};
为什么不简单地检查它是否已经关联,如果没有关联,就去做
void A::associate(B &b) {
if(not b_.contains(&b)) {
b_.insert(&b);
b.associate(*this);
}
}
目标应该是设计健壮的代码。这样,您可以根据需要随时调用
associate
,它将正常工作。无条件调用该方法将导致无限递归。不调用它会使类容易被误用。我建议想出其他的解决办法。