在C++中使用之前声明的规则是什么?

Mar*_*ark 3 c++

我的课程说明"C++需要在一个块中使用之前声明,并且在类型之间但不在一个类型中."

这是什么意思?

int f() {
   if (i)
     return i;
   int i = 1; //allowed?
   return 0;

}

//not allowed?
int g() {
    if (i)
      return i;
    return 0;
}

int i = 1; 
Run Code Online (Sandbox Code Playgroud)

Vot*_*ple 13

不.你的两个例子都是"在一个区块内",这两个都不允许.如果您尝试编译示例代码,则会立即收到错误.

但是,这将是允许的:

class Foo {
    int f() {
        return i;
    }

    private:
    int i;
};
Run Code Online (Sandbox Code Playgroud)

这是一种类型,这是重要的区别.