好的,所以我在 Visual Studios C++ (C++/CLI) 中的前向声明遇到了麻烦。代码如下:
啊
#include "B.h"
#ifdef B_H
#pragma once
public ref class A : public base_class //base_class is public, memory managed
{
B^ b;
}
#endif
溴化氢
#define B_H
#pragma once
ref class A;
ref class B
{
A^ a;
}
#include "A.h"
#ifdef/#pragma 守卫应该保持 *.h 不被读取两次,并强制 bh 首先被读取,并且从编译器输出中我很确定它们是。(我什至不确定#pragma once 和#include 放置是否需要#ifdef/#define)
但是,编译器抱怨路径/啊:错误 C2011:“类”类型重新定义。查看文件路径/Bh
我应该对 A 的前向声明做些什么,因为它是实际类定义中的派生类,还是我在吠叫错误的树?