C++ 模板的编译链接讨论

//头文件

#ifndef Test_h__

#define Test_h__

template<class T>

class Test1

{

public:

static T Add(const T& x, const T& y);

};

#endif // Test_h__

//cpp文件

#include "Test.h"

template<class T>

T Test1<T>::Add(const T& x, const T& y)

{

return x + y;

}

//使用地方

Test1<int>::Add(1, 2);

以上编译会出现,链接问题,原因是,类模板必须显示初始化,也就是告诉具体类型

解决办法:

//修改后的cpp文件

#include "Test.h"

template<class T>

T Test1<T>::Add(const T& x, const T& y)

{

return x + y;

}

//要声明一次

template

int Test1<int>::Add(const int& x, const int& y);

顺便编译通过!

相关推荐
好学且牛逼的马2 小时前
golang 10指针
开发语言·c++·golang
Pafey4 小时前
【Deepseek】Windows MFC/Win32 常用核心 API 汇总
c++·windows·mfc
侯杰5 小时前
C++ 线程安全初始化机制详解与实践
c++
每天敲200行代码6 小时前
QT 概述(背景介绍、搭建开发环境、Qt Creator、程序、项目文件解析、编程注意事项)
c++·qt
离越词7 小时前
C++day1作业
数据结构·c++·算法
Mercury_Lc11 小时前
【贪心 或 DFS - 面试题】小于n最大数
数据结构·c++·算法
凤年徐11 小时前
【数据结构】LeetCode160.相交链表 138.随即链表复制 牛客——链表回文问题
c语言·数据结构·c++·算法·leetcode·链表
羑悻的小杀马特11 小时前
【C++高并发内存池篇】ThreadCache 极速引擎:C++ 高并发内存池的纳秒级无锁革命!
开发语言·c++·多线程·高性能内存池
指针刺客12 小时前
嵌入式筑基之设计模式
开发语言·c++·设计模式
重启的码农13 小时前
Windows虚拟显示器MttVDD源码分析 (8) 驱动日志系统
c++·windows·操作系统