是否可以指向一个类中另一个文件中定义的结构?
我在下面的代码中尝试过,但出现此错误:
无法将赋值中的'main():: list *'转换为'entry :: list *'
main.cpp:
#include "entry.h"
#include <vector>
int main()
{
struct list
{
std::vector<entry*> entryVector;
int temp;
};
list A;
entry B;
B.ptrToStruct = &A;
return 0;
}
entry.h:
#ifndef ENTRY_H
#define ENTRY_H
#include <string>
class entry
{
public:
struct list; //prototype does not work
std::string text;
struct list* ptrToStruct;
};
#endif // ENTRY_H
我也试图写这样的原型:
struct main::list;
这也不起作用,因为“未声明'main'”。
最佳答案
这是关于范围。当您在list
中声明entry
时,这是一个新类型entry::list
。
如果要使用全局类型list
,则应将struct list;
移到类之外的全局范围内。
您可能想对main
中的声明执行相同的操作。
关于c++ - 指向另一个文件中定义的结构的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43206795/