【发布时间】:2011-11-22 20:34:15
【问题描述】:
我阅读了interesting things 关于复制和交换习语的内容。我的问题是关于从另一个类继承时swap 方法的实现。
class Foo : public Bar
{
int _m1;
string _m2;
.../...
public:
void swap(Foo &a, Foo &b)
{
using std::swap;
swap(a._m1, b._m1);
swap(a._m2, b._m2);
// what about the Bar private members ???
}
.../...
};
【问题讨论】:
-
私有基类成员上没有 cmets??通常会实现自定义复制操作符,因为有特殊情况的额外处理,例如指针。这种额外的、关键的逻辑应该存在于交换函数之外,它也可以包括私有成员。答案只显示了如何处理交换,但没有回答成语的“复制”部分。任何人都有一个很好的模式来实现整个成语的继承?
标签: c++ inheritance idioms