在Linux环境下使用C++模板,你需要遵循以下步骤:
// template.h
#ifndef TEMPLATE_H
#define TEMPLATE_H
template <typename T>
class MyTemplateClass {
public:
T getValue() const { return value; }
void setValue(T val) { value = val; }
private:
T value;
};
template <typename T>
T add(T a, T b) {
return a + b;
}
#endif // TEMPLATE_H
// main.cpp
#include <iostream>
#include "template.h"
int main() {
MyTemplateClass<int> myInt;
myInt.setValue(42);
std::cout << "Int value: " << myInt.getValue() << std::endl;
double result = add<double>(3.14, 6.28);
std::cout << "Double result: " << result << std::endl;
return 0;
}
g++ -o main main.cpp
./main
这将输出:
Int value: 42
Double result: 9.42
注意:模板是在编译时实例化的,因此编译器需要看到模板的完整定义。这就是为什么模板通常放在头文件中的原因。如果你将模板定义放在源文件中(例如:template.cpp),则在链接阶段可能会出现未解析的外部符号错误。为了避免这个问题,你可以将模板实现放在头文件中,或者使用export
关键字(尽管它在许多编译器中的支持有限)。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
相关推荐:C++ Linux编程中如何使用模板