【发布时间】:2023-04-11 04:52:01
【问题描述】:
class A { }
class B : public A { }
std::vector<B*> things;
void Func1(const std::vector<B*>& Bthings) {}
void Func2(const std::vector<A*>& Athings) {}
Func1(things); // ok
Func2(things); // not ok
我在使用上述代码时遇到了一些问题。我有一个指向对象的指针的 stl 集合,但我不希望 Func2 知道子类。有没有很好的方法来做到这一点?我知道std::vector<B*> 不是std::vector<A*>,但我不认为这是一个罕见的问题。我能想到的只是有 2 个单独的 A*s 和 B*s 列表,这似乎是错误的?
【问题讨论】:
标签: pointers collections stl