繁体   English   中英

C ++通用对象指针

[英]C++ Generic Object Pointer

我最近一直在从事一个C ++项目,该项目需要一个可以将类存储在地图(库)中的系统。 从我的研究中,我得出的结论是,我需要使用指向该类对象的指针。 很好,我有对象,但是我需要使指针适合来自不同类的多个不同对象。 如果不清楚,这是我的代码。

typedef NO-IDEA-WHAT-GOES-HERE;
struct library {
    std::map<std::string, objPointer> lib;
};

我需要知道如何创建一个可以接受来自多个类的对象的指针,即

//NOT WHAT I WANT
module someMod;
library *objPointer;
objPointer = &someMod;

但是更像...

typedef POINTER; //Not sure what to put here
module someMod;
std::map<std::string, POINTER> lib;
lib["something"] = someMod;
otherModule someOtherMod;
lib["somethingelse"] = someOtherMod;

先感谢您!

很好,我有对象,但是我需要使指针适合来自不同类的多个不同对象。

这是许多库和应用程序中的常见模式。

  1. 创建特定于您的应用程序的名称空间。
  2. 创建一个抽象类,该抽象类可用作应用程序中所有重要类的基类。
  3. 确保所有重要的类都派生自基类。

这样一来,您便可以在想要存储它们的任何容器中存储指向应用程序中所有重要类的实例的指针。

随着时间的流逝,您会发现仅使用基类接口就可以实现很多功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM