c++ - 如果我将源文件包含到头文件中,为什么不会出现链接错误?
问题描述
我是编程新手,我用模板尝试了一些简单的事情。我在一个附加的源文件中写了一个简单的乘法函数
#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"
所以我的问题是,如果我添加到头文件中,为什么我的代码可以工作?这对我来说没有太大意义,但代码成功编译。
解决方案
推荐阅读
- javascript - 在 chrome 扩展的 background.js 中使用 npm run build 调用 JS 函数
- sql - DATEDIFF() 用于动态更改日期
- xamarin - 如何在 Xamarin Android 中实现本地推送通知
- r - 按多个因素对表格进行分组并将其从长格式扩展到宽格式 - R 中的 data.table 方式
- mysql - 如何在 union all 中使用 order by
- angular - 无法在 Angular Universal 应用程序中使用 https 访问 localhost
- javascript - 在 jquery 中将创建的日期时间字符串格式化为 00:00:00
- java - Android Fragment in Fragment inflate 错误
- huggingface-transformers - 为什么在蒸馏 roBERTa 时冻结位置嵌入?
- sql - Oracle REGEXP_SUBSTR 返回 NULL 作为值