C++模板编译与C++编译机制在多文件编译时的冲突 |
您所在的位置:网站首页 › 模块可能需要编译和登记 › C++模板编译与C++编译机制在多文件编译时的冲突 |
C++模板编译
C++模板编译要编译两次。 以函数模板为例: 第一次编译检查语法 第二次编译生成具体的模板函数 第一次编译发生在正常的编译期间,第二次编译发生在函数模板调用期间。 C++编译机制C++多文件是独立编译,互不干扰的。 两种编译方式的冲突
Person.cpp #include "Person.h" #include using namespace std; /* * 模板需要经过两次编译,第一次编译检查语法 * 第二次编译生成具体的模板函数,在调用的时候 * 但是这会和C++的分离编译机制冲突 */ template void Person::Print() { cout } void Print(); };
main文件包含Person.cpp,而不是Person.h 但是这在惯用法上区别工程,可以将Person.cpp文件改为Person.hpp文件,并包含Person.hpp文件,表明这是一个头文件和源文件一起的文件。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |