C++ 奇怪的原型错误:Cpp';标题和标题
这是我收到的以下错误 错误:转发“A类”声明| 我正在尝试原型化这些类,并使它们在全球范围内可用。 我认为最好通过图片来解释这一点,因此: Oops还忘了提到FileA.cpp还包括External.hC++ 奇怪的原型错误:Cpp';标题和标题,c++,class,object,prototype,declaration,C++,Class,Object,Prototype,Declaration,这是我收到的以下错误 错误:转发“A类”声明| 我正在尝试原型化这些类,并使它们在全球范围内可用。 我认为最好通过图片来解释这一点,因此: Oops还忘了提到FileA.cpp还包括External.h 如果没有完整的类定义,就无法实例化对象(使用new) 将定义移动到External.h或使用工厂方法返回有效指针。使用类a时,需要该类的完整定义。否则编译器将如何知道它有哪些方法和变量?这包括对象实例的构造,即使只是在创建指针时也是如此。main试图在对类一无所知的情况下构造一个类,而只知道它存
如果没有完整的类定义,就无法实例化对象(使用
new
)
将定义移动到
External.h
或使用工厂方法返回有效指针。使用类a
时,需要该类的完整定义。否则编译器将如何知道它有哪些方法和变量?这包括对象实例的构造,即使只是在创建指针时也是如此。main试图在对类一无所知的情况下构造一个类,而只知道它存在。您需要Main.cpp可用的定义,而不是隐藏在另一个cpp文件中。类的前向声明足以声明指向该类的指针或引用,但仅此而已。如果要使用类函数(包括构造函数),则需要在使用时提供完整的定义。对于实例化对象(自动或使用<代码>新建),需要具有可见类型的完整定义。class A
主体应该对Main.cpp可见
仅向前声明的不完整类型的使用有限。它可以用作:
A类;
X类{
A*p;
A&r;
std::向量v;
};
请不要发布代码的图片。谁用非单空格字体编码!?
class A;
class X {
A* p;
A& r;
std::vector<A> v;
};