【发布时间】:2018-08-18 09:06:03
【问题描述】:
假设我有一个类Product 和一个派生自Product 的类AuctionedProduct。然后我有一个虚函数foo,如果我正在使用Product 基类,它会执行'x',如果它实际上是AuctionedProduct,它会执行'y'。给定一个对象,我如何确定哪个类实际上是我正在处理的类?
【问题讨论】:
-
如果你的设计是正确的,你不应该这样做。您调用适合该对象的函数,因为它已经从正确的类创建。
-
请出示您的代码。通常,如果您需要知道多态对象的确切类型,那么您首先不需要多态
-
请尝试创建Minimal, Complete, and Verifiable Example并显示我们,而不是描述代码。
-
你可以在这里找到你的答案:enter link description here
-
您可以使用
dynamic_cast,但使用dynamic_cast是一种代码味道
标签: c++ class inheritance derived-class