【发布时间】:2017-06-23 15:33:41
【问题描述】:
在下面这段代码 sn-p 中,有一个 Pets 类,继承了 Cat 和 Dog 类。我想要一套我所有的宠物。
class Pet{
//
};
class Dog: Pet{
//
};
class Cat: Pet{
//
};
int main(
set<Pet> a;
set<Pet*> b;
)
显然,如果我使用选项 b,任何指针,狗或猫,都可以在集合中,但我不确定如何制作集合的副本。
类似地,如果我复制集合 a,是否会调用 Cat,Dog 的复制构造函数来获取它们各自类型的项?
【问题讨论】:
-
请不要发布幻想代码。在你到达集合声明之前这不会编译,我觉得你想要公共继承而不是私有,不是吗?
标签: c++ c++11 inheritance