- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
想象一下,我有一个名为Test
的类,并且在该类中有一个指针列表,它们的类型都来自Base
类。尽管存储在列表中的任何指针都是从类Base
派生的类中的对象的指针。我想为特定的派生类型提供getter()
函数,该函数返回特定类的对象。请注意,我们不知道类内所需指针的索引。
class Base
{
/// Base class do have a pure virtual function
};
class Derived1
{
};
class Derived2
{
};
Class Test
{
std::vector<Base*> pointers; /// any STL collection... vector may be more frequent
get_derived1_object(); ///
};
get_derived1_object()
的一些可能的实现(我认为两者都有一些问题):
Derived1
对象的指针的副本指针。万一我想尝试使用
unique_pre
,这不是一个好的解决方案。
pointers
以便使用运行时类型检查从
Derived1
类中找到哪个项目。 (例如,尝试使用
dynamic_cast
或类似的东西)。在我的用例中,最好不要使用运行时类型检查。
get_derived1_object
之类的功能的最佳解决方案(无论是我自己提供的解决方案还是其他)。
最佳答案
代替 vector ,使用std::type_index
的关联映射到基本指针。确保只使用匹配的类型索引,然后就不需要dynamic_cast了,因为我们知道类型将匹配映射的指针。就是说,std::type_index
的使用仍然取决于RTTI。不需要线性搜索。
关于c++ - 从基类指针列表中获取特定派生类的对象的良好设计模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59396844/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!