【发布时间】:2016-01-07 13:49:18
【问题描述】:
我有一个从 Base 类派生的 Derived 类
我有一个 Derived* 指针(例如向量、集合等)的 std:: 容器。我有一个Base* 指针,我想知道容器是否包含该指针。
RTTI 和 dynamic_cast<Derived*>(base) 在此时不可用,因为对象可能已经被销毁,或者我们可能在 Destructor 调用链中。
如何检查容器是否包含基指针?
【问题讨论】:
-
说实话,这听起来像是一个糟糕的设计。
-
@CoryKramer :这听起来像是无用的评论,因为您不知道上下文(使用的框架等......)
-
@Rabbid76 :因为我需要访问派生对象。这些实际上是 QObjects 子类 (Qt),如果您熟悉 Qt,我会收到“destroyed()”信号。
-
你在向人们寻求帮助,然后批评他们不知道你没有提供的细节。不要那样做。如果你的问题不完整,那是你的错,你需要解决它。
标签: c++ pointers inheritance casting