首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎样定义模板的模板?解决思路

2012-05-01 
怎样定义模板的模板?template typename T class A : private A1 T{......B C T b // 这行编译错

怎样定义模板的模板?
template <typename T> class A : private A1 <T>{
  ......
  B <C <T>> b; // 这行编译错误 error C2143: syntax error : missing '>' before ';'
  ......
  };

  其中涉及的类定义为
  template <typename T> class A1 { ... };
  template <typename T> class B { ... };
  template <typename T> class C : public D { ... };
  class D { ... };

  为什么不能这样定义 B <C <T>> b ?

[解决办法]
说的很清楚了嘛!两个大于号连在一起,被认为是流操作符了,要加空格!
[解决办法]
B <C <T> > b//我在看C++primer puls上面说过,两个大于号中间最好空格,你这样子的定义貌似没问题,但是你中间C <T>的T应该是具体的类型才行,当然可以是您自己定义的类型,一般B都为容器类,那样嵌套模板才比较合理

热点排行