未定义已声明的错误c++静态方法
not defined error c++ Static methods declared
在文件Convert.h中,类中有一个静态方法,如下所示
class Convert
{
public :
static string convertIntToStr(unsigned int integer);
};
在Convert.cpp中
string
Convert::convertIntToStr(unsigned int integer)
{
ostringstream ostr;
ostr << integer;
return ostr.str();
}
我在另一个.cpp文件中的其他类方法中使用了这个作为Convert::convertIntToStr,但我得到了链接错误,它说对Convert::convertIntToStr(unsigned int)的未定义引用。你能告诉我可能出了什么问题吗?
这应该是一个注释,但我是SO的新手,它还不允许我添加注释。
如果这是一个愚蠢的问题,很抱歉,但你确定Convert.cpp已添加到你的项目中吗?听起来Convert.cpp没有被编译为链接器的对象。
确保正确链接所有对象文件。
这是一个链接器错误,当它找不到函数、全局变量等的定义时就会发生。你正在链接所有的对象文件吗?
如果您在命名空间中定义了Convert,请确保在调用时包含该命名空间。类似的东西
namespace::Convert::convertIntToStr(...)
或者调用类在同一命名空间中。
将类转换放入头文件中,并将其包含在另一个.cpp文件中
#ifndef CONVERT.H_
#define CONVERT.H_
class Convert
{
public :
static string convertIntToStr(unsigned int integer);
};
#end if
将其作为#include "convert.h"
包含在其他文件中。
相关文章:
- 尝试了解在导入的静态方法上使用删除方法时的错误
- 如何通过命名空间调用非静态方法
- 如何在没有实例的情况下获取非静态方法的类型?
- 调用从模板派生的类的静态方法,而不指定模板
- 如何在 c++ 中异步调用静态方法?
- C++ 将静态方法转换为简单方法
- 从另一个标头中的标头调用静态方法
- C++中静态方法的局部变量范围
- 如何启用使用另一个类的静态方法的模板函数的自动推导,从而消除冗长的调用方代码
- 使用本机 JNI 静态方法实现C++ Java 运行时错误
- 当只有静态方法受到影响时,如何解决C++中的链接器错误?
- 静态变量在同一个翻译单元中被静态方法使用时是否保证被初始化?
- 为什么链接器报告全局函数的乘法定义符号,而不是类静态方法
- 从部分专用模板方法调用模板非静态方法
- 如何使用 c++ 在 cocos2dx 中定义非静态方法
- 使用 CMake 的静态方法链接错误
- 在子类上调用模板化静态方法时获取类的类型名
- 仅具有公共静态方法的帮助程序类
- 调用没有主体的未实现静态方法
- 如何从C 的朋友类访问私有静态方法