前向声明模板指针

Jon*_*röm 6 c++ templates

我真的需要三个陈述,就像这样

class A;
template<class _T> class B;
typedef B<A> C;
Run Code Online (Sandbox Code Playgroud)

转发声明模板类型的指针C,如下所示:

C* c = 0;
Run Code Online (Sandbox Code Playgroud)

我希望能够隐藏课程A,B在我的前瞻性声明中,是否可能?

Rop*_*pez 8

虽然不完全相同,但您可以这样做:

class C;
C* c = 0;
Run Code Online (Sandbox Code Playgroud)

然后,在实现文件中,在包含"A"和"B"的头文件之后,定义"C",如下所示:

class C : public B<A> {};
Run Code Online (Sandbox Code Playgroud)

如果您只需要使用B <A>的默认构造函数,则使用继承而不是typedef应该有效.