相关疑难解决方法(0)

C ++ 11中的可变参数模板和多重继承

我正在努力实现这样的目标:

我有一个要动态继承的模板化基类

template<typename A, typename B>
class fooBase
{
public:
    fooBase(){};
    ~fooBase(){};
};
Run Code Online (Sandbox Code Playgroud)

所需方法:(类似这样,不太确定该怎么做)

template <typename... Interfaces>
class foo : public Interfaces...
{
public:
    foo();
    ~foo();
}
Run Code Online (Sandbox Code Playgroud)

我的目标是让foo类的行为如下:

第二种方法:

class foo()
    : public fooBase<uint8_t, float>
    , public fooBase<uint16_t, bool>
    , public fooBase<uint32_t, int>
    // and the list could go on
{
    foo();
    ~foo();
}
Run Code Online (Sandbox Code Playgroud)

第二种方法的问题是,如果我实例化一个foo对象,它将一直继承这3个基类,我想更广泛地使用它;当实例化foo对象时,请使用可变参数模板为其提供基参数类,以便我可以将foo类用于其他类型(也许将仅继承一​​个基类,也许继承五个)

谢谢

实例化foo的示例

foo<<uint8_t, float>, <uint16_t, bool>, <uint32_t, int>, /* and the list could go on and on */> instance
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates variadic-templates c++11

5
推荐指数
2
解决办法
2987
查看次数

标签 统计

c++ ×1

c++11 ×1

inheritance ×1

templates ×1

variadic-templates ×1