我真的需要三个语句吗?就像这样
class A;
template<class _T> class B;
typedef B<A> C;
要前置声明一个模板类型为C
的指针,可以这样写:
C* c = 0;
我希望能在前置声明中隐藏类A
和B
,这是否可能?需要注意的是,请保留HTML标记。
class C;
C* c = 0;
然后,在实现文件中,包含"A"和"B"的头文件后,像这样定义"C":
class C : public B<A> {};
如果你只需要使用B<A>的默认构造函数,那么使用继承而不是typedef应该是可行的。
我不是很明白你的问题,但是像这样的代码:
template<class _T> class B;
是非法的。C++将下划线和大写字母开头的名称保留给编译器和库实现 - 您不允许在自己的代码中使用它们。