我正在使用Visual Studio 2008 Express版,并且不断收到以下错误:
"Cascadedisplay.h(4) : fatal error C1014: too many include files : depth = 1024.
显然我对包含文件做了一些非常错误的事情,但我看不出是什么.
基本上,我有一个接口类,StackDisplay我想从中导出CascadeDisplay另一个文件:
#if !defined __BASE_STACK_DISPLAY_H__
#define __BASE_STACK_DISPAY_H__
#include <boost\shared_ptr.hpp>
#include "CascadeDisplay.h"
namespace Sol
{
class StackDisplay
{
public:
virtual ~StackDisplay();
static boost::shared_ptr<StackDisplay>
make_cascade_display(boost::shared_ptr<int> csptr)
{
return boost::shared_ptr<StackDisplay>(new CascadeDisplay(csptr));
}
};
}
#endif
Run Code Online (Sandbox Code Playgroud)
然后在CascadeDisplay.h中:
#if !defined __CASCADE_DISPLAY_H__
#define __CASCADE_DISPAY_H__
#include "StackDisplay.h"
#include <boost\shared_ptr.hpp>
namespace Sol
{
class CascadeDisplay: public StackDisplay
{
public:
CascadeDisplay(boost::shared_ptr<int> csptr){};
};
}
#endif
Run Code Online (Sandbox Code Playgroud)
那有什么用呢?
小智 9
#if !defined __CASCADE_DISPLAY_H__
#define __CASCADE_DISPAY_H__
Run Code Online (Sandbox Code Playgroud)
第二行应该是:
#define __CASCADE_DISPLAY_H__
Run Code Online (Sandbox Code Playgroud)
与:相同:
#if !defined __BASE_STACK_DISPLAY_H__
#define __BASE_STACK_DISPAY_H__
Run Code Online (Sandbox Code Playgroud)
此外,包含双下划线的名称是为实现保留的,不允许在自己的代码中创建此类名称.对于以单个下划线和大写字母开头的名称也是如此.
| 归档时间: |
|
| 查看次数: |
6125 次 |
| 最近记录: |