我在类中有一个静态方法,如下文所示 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)的未定义引用。你能告诉我可能出现的问题吗?
答案 0 :(得分:4)
这应该是一个评论,但我是SO的新手,它不允许我添加评论。
很抱歉,如果这是一个愚蠢的问题,但您确定Convert.cpp已添加到您的项目中吗?听起来,Convert.cpp没有被编译成链接器的对象。
答案 1 :(得分:3)
确保正确链接所有目标文件。
答案 2 :(得分:3)
它是一个链接器错误,当它找不到函数,全局变量等的定义时会发生...你链接所有的对象文件吗?
答案 3 :(得分:3)
如果已在命名空间中定义了Convert,请确保在调用时包含该命名空间。像
这样的东西namespace::Convert::convertIntToStr(...)
或调用类位于同一名称空间中。
答案 4 :(得分:1)
将类转换放在头文件中,并将其包含在另一个.cpp文件中
#ifndef CONVERT.H_
#define CONVERT.H_
class Convert
{
public :
static string convertIntToStr(unsigned int integer);
};
#end if
将其作为#include "convert.h"
包含在其他文件中。