zoukankan      html  css  js  c++  java
  • C++ 模板类示例 template class

    声明和实现在一个文件中:

    template<class T>
    class book
    {
    public:
    	book();
    	~book();
    
    private:
    
    };
    
    
    template<class T>
    book<T>::book()
    {
    }
    
    template<class T>
    book<T>::~book()
    {
    }
    
    
    int main()
    {
    	book<int> b;
    
    	return 0;
    }
    

      

    声明和实现分开在h和cpp文件中:

    潜在问题是,仅仅按照普通class的方式分开,在编译的时候,会报 link2019 错误。原因是在编译实例化模板类的文件时,模板类只有声明文件(h)被链接,其实现文件(cpp里面的部分)找不到。

    解决办法:

    * 1 在实例化模板类的文中开头,包含该 cpp 文件(#include "xxx.cpp")

    * 2 声明和实现写在同一个h文件中;(本人不推荐这么做)

    ------------------- book.h -----------------------------------

    #pragma once
    
    template<class T>
    class book
    {
    public:
    	book();
    	~book();
    
    private:
    
    };
    

      

    ------------------- book.cpp -----------------------------------

    #include "book.h"
    
    template<class T>
    book<T>::book()
    {
    }
    
    template<class T>
    book<T>::~book()
    {
    }
    

      

    ------------------- main.cpp -----------------------------------

    #include "book.h"
    #include "book.cpp"
    
    int main()
    {
    	book<int> b;
    
    	return 0;
    }
    

      

  • 相关阅读:
    初谈面向对象
    java概述~至数组
    django一对多数据库模型
    Django url()函数详解
    python编码规范
    django的用户管理
    ubuntu下安装搜狗拼音
    乱七八糟的2013
    使用django进行微信公众平台开发
    我们要写的项目
  • 原文地址:https://www.cnblogs.com/alexYuin/p/11546108.html
Copyright © 2011-2022 走看看