未定义 class ,无法从 main 到达我的 header
Undefined class , cannot reach from main to my header
我有一个问题,我无法在 header 中调用我的函数,我想在我的主要函数中调用它,但它是这样说的。
错误 2 error C2039: 'Test' : 不是 'std::basic_string<_Elem,_Traits,_Alloc>' 的成员
undefined class 为什么会这样?
注意:我删除了代码中不重要的部分。
#include "CompressHeader.h"
int main()
{ input.get(ch);
string a=ch;
if(Test(a))//here is undefined one.
{
}
我的header
class Compress
{
public:
Compress();
Compress(string hashData[],const int size); //constructor
void makeEmpty();
bool Test(string data);//To test if data in the dictionary or not.
因为Test是Compress的成员函数,所以需要通过Compress的实例调用,如:
string a=temp2;
Compress c;
if (c.Test(a)) {...}
或者将这段代码放在 Compress
的成员函数中
在下面的代码中:
if(Test(a))//here is undefined one.
您调用了一个全局函数 Test
- 它实际上是 Compress
class 的成员。因此,要修复您的代码,您应该在压缩对象上调用测试:
Compress c;
if (c.Test(a)){}
因为你要调用的方法不是static
方法,你需要创建一个classCompress
的对象(实例)来调用那个方法,类似于:
#include "CompressHeader.h"
int main()
{
// temp2 is not defined in your example, i made it a string
string a = "temp2";
//Create the object
Compress compressObject;
//Call the method using the object
if(compressObject.Test(a) {
//...
我有一个问题,我无法在 header 中调用我的函数,我想在我的主要函数中调用它,但它是这样说的。 错误 2 error C2039: 'Test' : 不是 'std::basic_string<_Elem,_Traits,_Alloc>' 的成员 undefined class 为什么会这样? 注意:我删除了代码中不重要的部分。
#include "CompressHeader.h"
int main()
{ input.get(ch);
string a=ch;
if(Test(a))//here is undefined one.
{
}
我的header
class Compress
{
public:
Compress();
Compress(string hashData[],const int size); //constructor
void makeEmpty();
bool Test(string data);//To test if data in the dictionary or not.
因为Test是Compress的成员函数,所以需要通过Compress的实例调用,如:
string a=temp2;
Compress c;
if (c.Test(a)) {...}
或者将这段代码放在 Compress
的成员函数中在下面的代码中:
if(Test(a))//here is undefined one.
您调用了一个全局函数 Test
- 它实际上是 Compress
class 的成员。因此,要修复您的代码,您应该在压缩对象上调用测试:
Compress c;
if (c.Test(a)){}
因为你要调用的方法不是static
方法,你需要创建一个classCompress
的对象(实例)来调用那个方法,类似于:
#include "CompressHeader.h"
int main()
{
// temp2 is not defined in your example, i made it a string
string a = "temp2";
//Create the object
Compress compressObject;
//Call the method using the object
if(compressObject.Test(a) {
//...