假设我正在编写一个与项目一起使用的应用程序,并根据项目的类型公开不同的功能。我有不同类型项目的类层次结构:
class AbstractProject
{
};
class ProjectA : public AbstractProject
{
};
class ProjectB : public AbstractProject
{
};
class ProjectC : public AbstractProject
{
};
现在,我计划将一个 AbstractProject *_currentProject 指针作为应用程序主类中的一个成员,在启动时弹出一个对话框并根据选择执行:
_currentProject = new ProjectB(); // e.g.
稍后,我将不得不向下转换指向特定类型的指针,以利用特定于不同项目的功能。不知何故,这让我感到不安。有更好的方法吗?
最佳答案
更好的方法是在基类中定义纯虚方法,然后在派生类的重载中实现所有特定功能。然后调用该方法。
关于c++ - 在 C++ 中使用类层次结构时是否应该避免向下转型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657655/