我在类里面定义了这个函数。
.hpp
文件:
class SomeClass
{
public:
static string DoStuff(string s);
};
.cpp
文件:
#include "header.hpp"
string SomeClass::DoStuff(string s)
{
// do something
}
编译器说:
**error C2039: 'DoStuff' : is not a member of 'SomeClass'**
有人可以帮忙吗?
编辑: 实际违规代码
标题定义
class DDateTime{
public:
static string date2OracleDate(DATE Date);
}
string DDateTime::date2OracleDate(DATE Date)
{
string s;
s="TO_DATE('" + DDateTime::DateFormat("%d/%m/%Y",Date) + "','dd/MM/YYYY')";
return s;
}
最佳答案
通常,.cpp
文件必须包含匹配的.h
或.hpp
文件。
这里是这样吗?
您还可能遇到命名空间问题(.cpp
文件中缺少命名空间或命名空间之外的静态方法定义,等等。)
实际上,在我们拥有真正的破解代码之前,很难回答。
此外,我不知道这是否是示例代码,但您似乎在头文件中使用了类似 using std::string
或 using namespace std
的东西.
这是个坏主意,因为它会污染包含您的 header 的每个文件。如果有人想使用您的头文件但不想“使用”std
,因为 string
是其中一个类的名称怎么办?
关于c++静态函数未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111072/