C ++缺少类型说明符 - 假定为int?

时间:2013-07-22 11:42:20

标签: c++ visual-c++

不确定为什么会发生这种情况......它在第72行说“错误C4430:缺少类型说明符 - 假设为int。注意:C ++不支持default-int”

现在,我在想我的BOOL会做什么?虽然我不确定,但你能帮忙吗?

第72行

static bCapture = false;

bCapure加下划线,鼠标错过“静态错误:显式类型丢失(假设为'int')

4 个答案:

答案 0 :(得分:6)

因为您尚未声明static变量的类型。

你必须使用:

static bool bCapture = false;
//     ^^^^

static不是类型,它是存储持续时间说明符

答案 1 :(得分:1)

"不确定为什么会发生这种情况。" - 因为你还没有声明变量的类型。 static不是类型,它是存储持续时间说明符。你想要的是static bool bCapture = false;

答案 2 :(得分:0)

static bCapture = false无效,因为您没有为bCapture指定类型(见下文))。由于C ++是一种严格类型的语言,因此不允许从您的赋值中隐式猜测类型。考虑一下:

static a = 3; // is a int or some other integral type?
              // or maybe even a class with non-explicit
              // conversion constructor?

使用

static bool bCapture = false;

代替。


从C ++ 11开始,可以让编译器推断变量的类型,但是你仍然必须明确告诉它这样做。所以它会是

auto f = false;

答案 3 :(得分:0)

您尚未声明类型bCapture - static不是类型。

将其作为

static bool bCapture = false;

静态

当修改变量时,static关键字指定变量具有静态持续时间(在程序开始时分配,在程序结束时释放)并将其初始化为0,除非指定了另一个值。在文件范围修改变量或函数时,static关键字指定变量或函数具有内部链接(其名称在声明它的文件外部不可见)。

来源&更多细节:http://msdn.microsoft.com/en-us/library/s1sb61xd(v=vs.80).aspx