C++ template简单应用

来源:互联网 发布:淘宝旗舰版是什么意思 编辑:程序博客网 时间:2024/06/07 19:00
#include<iostream>using namespace std;#include<vector>template<typename T = int>class A{    private:        T a;};template<typename T = int, typename V = int>class A1 : public A<T>{    private:        V a1;};template<class T = A<int>, typename V = int>class B{    public:        void GetA()        {            std::cout << vecA.size() << std::endl;        }                                                                                                                                                                           private:        std::vector< T > vecA;};int main(){    B<A<int>, int> b;    b.GetA();    return 0;} 

例2:

template 与 vector问题

#include<iostream>using namespace std;#include <vector>using namespace std;template<typename TAV>class Container{    private:        vector<TAV> m_List;    public:        void add(TAV node)        {               m_List.push_back(node);        }           void Get()        {               for(typename vector<TAV>::iterator it = m_List.begin(); it != m_List.end(); ++it) //需要添加typename            {                   std::cout << *it << std::endl;            }           }   };int main(){    Container<int> t;    t.add(1);    t.Get();} 

例3:

template中编译出现undefined file问题

解决办法:

c++ 模板不支持分离编译模型,把实现文件中的定义移到头文件中就行了。


简单应用 后续继续扩展

0 0
原创粉丝点击