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

      

  • 相关阅读:
    React 生命周期
    css 多行文本以...代替
    微信JSSDK配置文件说明
    zepto阻止事件冒泡
    PHP 图片处理PNG颜色丢失
    React 学习笔记(一)
    webpack webpack-dev-server使用指南
    为什么需要使用模块打包工具?
    如何实现微信公户绑定公众号业务
    iOS 手势
  • 原文地址:https://www.cnblogs.com/alexYuin/p/11546108.html
Copyright © 2011-2022 走看看