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;
    }
    

      

  • 相关阅读:
    MySQL 查询各科前三的数据
    MySQL 分时间段查询
    MySQL 查询同一字段中同时满足多个条件
    MySQL 分组累加
    快速搭建LNMP
    打开页面默认弹出软键盘,同时兼容iOS和Android
    linux 系统的ssh服务
    linux 磁盘
    linux系统基础网络配置
    discuz中方法
  • 原文地址:https://www.cnblogs.com/alexYuin/p/11546108.html
Copyright © 2011-2022 走看看