我们假设有四个文件:foo.h,foo.cpp,bar.h,bar.cpp。VC++ 2010:'缺少类型说明符'错误来来去去,没有改变代码
foo.h中:
#pragma once
class foo
{
// Whatever
};
Foo.cpp中
#include "foo.h"
// Foo's definitions
bar.h
#pragma once
class bar
{
bar(const foo & f); // < C4430 'missing type specifier' (not always)
// Other declarations
};
bar.cpp
#include "foo.h"
#include "bar.h"
// Bar's definitions
编译器说有C4430在bar.h.但奇怪的是,我可以通过评论来构建代码,然后取消注释。当然,构建失败,行也被评论,但是当我取消注释时,我会成功构建。所以相同的代码可能会或可能不会产生错误。
我的VS是10.0.40219.1 SP1Rel,并且项目类型是Win32 DLL。
尽可能清楚!非常感谢Luchian! – Yegor
@Yegor乐于帮助:) –
如果您只使用引用,而不仅仅是指针,那么声明也足够。 – Xeo