C++类实例化问题
我已包括适当的 头文件, 收割台 但是我不能实例化一个特定的类 获取错误C++类实例化问题,c++,visual-c++,C++,Visual C++,我已包括适当的 头文件, 收割台 但是我不能实例化一个特定的类 获取错误 error C2065: 'ClassName' : undeclared identifier Sample Code Class A{ //instantiate class B } Class B { //need to instantiate Class A } 顺便说一句,你没有;在类定义的末尾。根据我的理解,类a和B之间存在循环依赖关系。因此,您需要对这两个类中的至少一个或甚至两个类
error C2065: 'ClassName' : undeclared identifier
Sample Code
Class A{
//instantiate class B
}
Class B {
//need to instantiate Class A
}
顺便说一句,你没有;在类定义的末尾。根据我的理解,类a和B之间存在循环依赖关系。因此,您需要对这两个类中的至少一个或甚至两个类都使用前向声明。由于您没有发布任何真正的代码供我们实际使用,我将猜测您的代码实际上是什么样子的: A.h: B.h: B.cpp:
#include "B.h"
#include "A.h"
void B::doSomething(A param) { }
正如Flinsch所说,您需要有转发声明,以避免包含排序的问题。最简单的方法是去掉.h文件中的循环包含,只包含类B的转发声明;甲级;;改为A.h和B.h。我可以实例化其他类。您会粘贴代码吗?循环依赖可能是一个失败的最小完整示例。除非您发布一些我们永远不会知道的代码。否。你什么都没有描述。发布一些真实的代码来说明问题。我的类在单独的.cpp文件中。你知道吗?是的,这是每个类都有一个单独的.cpp文件的标准过程。你都做了些什么?你真的不想得到帮助,是吗?不,你没有描述任何场景,因为没有真正的代码,也没有编写实例。你的问题目前对我们来说只是一个模糊的笑话。
#ifndef HEADER_B
#define HEADER_B
#include "A.h"
class B {
public:
doSomething(A param);
};
#include "B.h"
#include "A.h"
void B::doSomething(A param) { }