如何修复这个类模板错误
How to fix this class template error?
这是我第一次尝试使用类模板(我是c++新手)
我想创建一个非常简单的Number
类。首先,我要创建一个ToString
方法。到目前为止,出于测试目的,我只想让ToString
返回字符串"testing"
。
Undefined symbols for architecture x86_64:
"Number<int>::ToString()", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [build/ml] Error 1
这是我的代码,任何帮助是感激的:
main.cpp
#include "number.h"
int main(int argc, char* argv[]) {
Number<int> x(15);
x.ToString();
return 0;
}
number.h
#ifndef _NUMBER_
#define _NUMBER_
#include <iostream>
template <class T>
class Number {
private:
T m_val;
public:
Number(T val) : m_val(val) {};
std::string ToString();
};
#endif
number.cpp
#include "number.h"
template<class T>
std::string Number<T>::ToString() {
return std::string("testing");
}
尝试在main.cpp
中包含number.cpp
(作为临时解决方案),而不是包含number.h
。或者将ToString()
的函数定义移到number.h
中,只使用number.h
。
参见为什么模板只能在头文件中实现?
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 当使用带有VS2019或VSCode的虚幻引擎4.24.2时,我如何修复这些错误的Intellisense错误
- 如何修复sfml c++代码编译错误
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 如何修复此错误:className::className的无效使用
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- 修复未初始化的局部变量错误
- 类型为 "Bucket&"(未限定的 const 限定)的引用不能使用 "SortedList." 类型的值进行初始化 如何修复此错误?
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- 如何修复此特征矩阵反演溢出错误?
- 试图修复一个错误,该错误不会让我开始编程其余部分
- 如何修复输出日志中的"EnableInput can only be specified on a Pawn for its Controller"错误
- 如何修复无效的API密钥,IP或操作权限错误?
- 避免指针运算,修复叮当整齐错误
- 如何使用运行时检查错误来修复我的C 格斗游戏
- 矢量下标超出范围错误-如何修复此SPECIFIC错误
- 包错误需要修复
- 如何在程序中出现错误之前修复丢失';' '*'?