zoukankan      html  css  js  c++  java
  • 使用模板类导致error LNK2019: 无法解析的外部符号

    原地址

    1.定义模板类:

    template<class T>

    class Stack

    {....};

    2.定义模板成员函数:

    每个函数头都要以相同的模板声明打头,并将类限定符改成:类名<T>::这种形式。

    template<class T>

    bool Stack<T>::push(T tmp)

    {...}

    3.模板类的使用

    Stack<int> object;

    4.除非编译器实现了新的export关键字,否则将模板成员函数设置在一个独立的实现文件中将无法运行。因为模板不是函数,它们不能单独编译。模板必须与特定的模板实例化请求一起使用。为此,最简单的方法是将所有模板信息放在一个头文件里,并在要使用这些模板的文件中包含该头文件。如果编译器实现了心得export关键字,则可以将模板方法定义放在一个独立文件中,条件是每个模板声明都是以export开始:

    #ifdef STACKTP_H_

    #define STACKTP_H_

    export template<class T>

    class Stack

    {......}

    #endif

    然后按常规类的方式进行:

    1.将模板类声明(包括关键字export)放在一个头文件中,并使用#include编译指令时程序能够使用这些声明。

    2.将模板类的方法定义放在源代码文件中,在该文件中包含头文件,并使用工程文件时程序能够使用这些定义。

  • 相关阅读:
    osg模型部分节点旋转
    IFC数据模型构件控制
    自定义基于IFC数据的施工进度数据结构
    QDateTime QString
    Qt获取屏幕分辨率
    Qt自定义类重写 copy
    removeEntry
    initGanttView
    IfcAxis2Placement3D IFC构件的位置和方向
    致我最爱的你
  • 原文地址:https://www.cnblogs.com/lanye/p/3591139.html
Copyright © 2011-2022 走看看