如果不知道所有细节,请使用模板作为成员

0 c++ templates

是否可以将模板指定为成员但不知道所有细节?或者我怎样才能解决这个问题.

示例不起作用,但可能会显示我正在尝试实现的目标.

template<typename T>
struct Foo {
   ///blah...
};

struct Bar {
    Foo* m_foo;
};
Run Code Online (Sandbox Code Playgroud)

Bar 在这种情况下是一个基类,并根据派生类我不知道的全部细节 Foo

Ben*_*igt 5

您也可以创建Bar一个模板类,以便它可以传递该模板参数Foo,或者您可以使所有Foo<T>变体继承自公共接口(在C++中,接口只是一个没有实现的抽象类,所有成员都是纯虚函数)然后Bar可以指向该接口.

如果Bar要提供一些将被一堆派生类重用的功能,第一种方法会更好.

如果Bar要使用多态的后代,第二种方法会更好.