0

我有一个头文件“ check.h”,它定义了以下内容struct

#ifndef CHECK_H
#define CHECK_H
#include<string>
struct Test{
    std::string check;

};

#endif  

我有另一个头文件“ test.h”,它具有以下函数,返回类型如上struct Test定义:

#ifndef TEST_H
#define TEST_H
#include<string>
#include "check.h"
Test display(std::string);
#endif  

但即使包含"check.h"在此头文件中,我也会收到unable to resolve identifier错误消息。我该怎么做才能解决这个问题?

4

2 回答 2

2

只要您没有用 name 定义其他东西(例如变量或函数),您的代码就应该没问题Test

如果你有,那么你需要明确指出你指的是类而不是其他东西:

struct Test display(std::string);
^^^^^^

尽管更好的解决方案是避免对不同的事物使用相同的名称。

于 2012-12-12T11:44:42.890 回答
0

您应该返回struct Test,因为test.h定义了结构而不是类型。

或者只是将您的结构定义更改为 typedef:

typedef struct s_Test{
    string check;
} Test;

在那里查看维基百科

于 2012-12-12T11:22:15.623 回答