BCB类模板的设计与实现

来源:互联网 发布:java 杭州 编辑:程序博客网 时间:2024/06/04 19:13

关于c++中类的模板,惯常的用法都是把实现和定义放在头文件里了事。这样的问题是,加大了头文件的长度,减低了模板代码的可读性,还有就是破坏了面向对象的隐藏实现的规则。下面就是这种问题的两个解决方案的总结。

//定义头文件a.h

template <class T>

calss a

{

   public:

      a();

      void methoda();

};

 

#定义实现文件a.cpp

export template <class T>

a<T>::a()

{

    //方法的设计与实现

}

 

export template <class T>

void a<T>::methoda()

{

   //方法的设计与实现

}

 

<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------!>

//简单调用程序的设计与实现

//定义头文件b.h

#include "a.h"

class b

{

     public:

       b();

       void methodb();

       a<b> *a1;

};

 

#定义实现文件b.cpp

#include "a.cpp"

b::b()

{

    //方法的设计与实现

    a1=new a<b>();

}

 

void b::methodb()

{

   //方法的设计与实现

   a1->methoda();

}