C++ template简单应用

    xiaoxiao2021-03-25  130

    #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++ 模板不支持分离编译模型,把实现文件中的定义移到头文件中就行了。

    简单应用 后续继续扩展

    转载请注明原文地址: https://ju.6miu.com/read-12112.html

    最新回复(0)