在Linux环境下使用C++模板,你需要遵循以下步骤:
- 创建一个头文件(例如:template.h)来定义你的模板类或函数。模板定义通常放在头文件中,因为编译器需要在实例化模板时看到完整的定义。
// template.h #ifndef TEMPLATE_H #define TEMPLATE_H templateclass MyTemplateClass { public: T getValue() const { return value; } void setValue(T val) { value = https://www.yisu.com/ask/val; }> T add(T a, T b) { return a + b; } #endif // TEMPLATE_H
- 在你的C++源文件(例如:main.cpp)中包含这个头文件,并使用模板类或函数。
// main.cpp #include#include "template.h" int main() { MyTemplateClass myInt; myInt.setValue(42); std::cout << "Int value: " << myInt.getValue() << std::endl; double result = add (3.14, 6.28); std::cout << "Double result: " << result << std::endl; return 0; }
- 使用g++编译器编译你的程序。确保在编译命令中包含头文件的路径。
g++ -o main main.cpp
- 运行生成的可执行文件。
./main
这将输出:
Int value: 42 Double result: 9.42
注意:模板是在编译时实例化的,因此编译器需要看到模板的完整定义。这就是为什么模板通常放在头文件中的原因。如果你将模板定义放在源文件中(例如:template.cpp),则在链接阶段可能会出现未解析的外部符号错误。为了避免这个问题,你可以将模板实现放在头文件中,或者使用export
关键字(尽管它在许多编译器中的支持有限)。