CPPTemplates之类模板的继承
来源:优易学  2010-1-15 9:14:57   【优易学:中国教育考试门户网】   资料下载   IT书店

  类模板可以继承也可以被继承。

  1.在一个类模板中,一个非依赖型基类是指:无须知道模板实参就可以完全确定类型的

  基类。

  例如:

  template<typename X>

  class Base{

  public:

  int basefield;

  typedef int T;

  };

  class D1:public Base<Base<void> >{//实际上不是模板

  public:

  void f(){basefield = 3; }

  };

  template<typename T>

  class D2:public Base<double>{

  public:

  void f() { basefield = 7; }//正常访问继承成员

  T strange;//T是Base<double>::T,而不是模板参数

  };

  注意事项:对于模板中的非依赖类型而言,如果在他的派生类中查找一个非受限名称,那就会先查找这个非依赖型基类,然后才会查找模板参数列表。

  2.非依赖性名称不会在依赖基类中查找

  template<typename X>

  class Base{

  public:

  int basefield;

  typedef int T;

  };

[1] [2] 下一页

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训