首页 > 解决方案 > 如果我将源文件包含到头文件中,为什么不会出现链接错误?

问题描述

我是编程新手,我用模板尝试了一些简单的事情。我在一个附加的源文件中写了一个简单的乘法函数

#include<iostream>

template<typename T>
void Multiply(T a) {

    std::cout << 3 * a << std::endl;

}

带有带有声明的头文件

   #pragma once
template<typename T>
void Multiply(T a);

如果我尝试编译此代码,我会收到一个链接错误,这对我来说很有意义,因为如果我理解正确,编译器无法在不知道 T 是什么的情况下编译源代码。#include "Multiply.cpp"所以我的问题是,如果我添加到头文件中,为什么我的代码可以工作?这对我来说没有太大意义,但代码成功编译。

标签: c++templates

解决方案


推荐阅读