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) { }