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

顺便编译通过!

相关推荐
yeflx5 分钟前
C++纯虚接口
开发语言·c++
永远睡不够的入16 分钟前
C++list详解
c++·windows·list
仰泳的熊猫34 分钟前
题目2268:蓝桥杯2016年第七届真题-密码脱落
数据结构·c++·算法·蓝桥杯
山栀shanzhi1 小时前
C++ 核心机制解析:#pragma once 与 extern 的具体职责与区别
开发语言·c++·面试
Yusei_05231 小时前
C++14入门
c++·算法
行稳方能走远1 小时前
从轮询到回调再到观察者——嵌入式应用层感知底层变化的三种姿势
c++
知无不研1 小时前
中介者模式
c++·设计模式·中介者模式
crescent_悦1 小时前
PTA C++:正整数A+B
数据结构·c++·算法
YYYing.2 小时前
【Linux/C++多线程篇(一) 】多线程编程入门:从核心概念到常用函数详解
linux·开发语言·c++·笔记·ubuntu
一起搞IT吧2 小时前
Android功耗系列专题理论之十六:功耗不同阶段&不同模块分析说明
android·c++·智能手机·性能优化