C++ 指向不同类的函数指针向量
我有一个函数指针的typedef:C++ 指向不同类的函数指针向量,c++,vector,interface,function-pointers,C++,Vector,Interface,Function Pointers,我有一个函数指针的typedef: typedef int(interface1::*getInfoInterface1_t)(void); 然后是这些函数指针的向量: std::vector<getInfoInterface1_t> std::vector 我想重用我创建的这个类,但是每个实例实现一个不同的虚拟接口类。如果类不匹配,指针将不匹配 由于我还没有弄明白这一点,很不幸,我制作了这个类的精确副本,除了typedef和vector之外,其他都是相同的 如果能够有不同的函
typedef int(interface1::*getInfoInterface1_t)(void);
然后是这些函数指针的向量:
std::vector<getInfoInterface1_t>
std::vector
我想重用我创建的这个类,但是每个实例实现一个不同的虚拟接口类。如果类不匹配,指针将不匹配
由于我还没有弄明白这一点,很不幸,我制作了这个类的精确副本,除了typedef和vector之外,其他都是相同的
如果能够有不同的函数签名,那就太好了
有办法解决这个问题吗?只需制作一个类模板,其中保留指针的类是一个模板参数:
template <typename Cls>
class Foo {
typedef int(Cls::*getInfoInterface1_t)(void);
std::vector<getInfoInterface1_t> ifcs;
// ...
};
模板
福班{
typedef int(Cls::*getInfoInterface1_t)(无效);
病媒综合征;
// ...
};
这样,对于每个类类型,您只需选择正确的模板:
Foo<interface1> your_original_version;
Foo您的原始版本;
在这里,您可能需要阅读有关名称空间和名称空间的内容。你的意思是指向不同阶层的成员吗?@Barry-是的,这就是我想做的。