因此,我基本上有以下代码。我有工作代码,想将其中的一些分成两个不同的类,D3DWindow
和D3DController
,而不是全部包含在D3DWindow
中。我不认为这是一个问题,因为它在分离之前就已经起作用了。该问题发生在D3DController.cpp
中。它说了类似D3DController::Create(D3DWindow*) does not match type D3DController::Create(<error-type>*)
的内容所有文件都在VS2010中,并且都包含在同一项目中。作为我的问题,没有什么立即脱颖而出的。
stdafx.h
#include <d3d10.h>
#include <windows.h>
#include "D3DWindow.h"
#include "D3DController.h"
stdafx.cpp
#include "stdafx.h"
D3DWindow.h
#include "D3DController.h"
class D3DWindow{
D3DController controller;
public bool init();
};
D3DWindow.cpp
#include "stdafx.h"
bool D3DWindow::init(){
if(!controller.create(this))
return false;
return true;
}
D3DController.h
#include "D3DWindow.h"
class D3DController{
public bool Create(D3DWindow* window);
};
D3DController.cpp
#include "stdafx.h"
bool D3DController::Create(D3DWindow* window){
// Do Stuff
return true;
}
最佳答案
您具有循环依赖关系。也许您可以使用类转发声明代替#include
。例如。:
// #include "D3DWindow.h"
class D3DWindow; // forward declaration
class D3DController{
public bool Create(D3DWindow* window);
};
关于c++ - C++ header 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3873531/