这段代码有什么问题:
class C {
public:
int h();
};
C he; //Fine
he.h(); //Error: 'he' does not name a type
int main() {
C me; //Fine
me.h(); //Fine
}
使用 MinGW 4.6.2。
注意:我只是编译,而不是链接。
这段代码有什么问题:
class C {
public:
int h();
};
C he; //Fine
he.h(); //Error: 'he' does not name a type
int main() {
C me; //Fine
me.h(); //Fine
}
使用 MinGW 4.6.2。
注意:我只是编译,而不是链接。
在函数之外,您只能放置声明/定义。要执行类似的东西he.h();
,该代码需要进入一个函数。
在最上层,每个 C++ 翻译单元必须由声明组成
translation-unit:
declaration-seq[opt]
declaration-seq:
declaration
declaration-seq declaration
Burhe.h();
不是声明。因此错误。
您可以引入一个虚拟变量将其转换为声明
int dummy = he.h();
并且代码将编译。但是原版是非法的。