C++ 错误:X没有命名类型
此代码有什么问题:C++ 错误:X没有命名类型,c++,C++,此代码有什么问题: 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()的操作,该代码需要在函
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++翻译单元必须由声明< /P>组成。
translation-unit:
declaration-seq[opt]
declaration-seq:
declaration
declaration-seq declaration
Burhe.h()代码>不是一个声明。因此出现了错误
可以引入一个伪变量将其转换为声明
int dummy = he.h();
代码将被编译。但是原始版本是非法的。如果可以在其外部调用函数,为什么会存在main
?编译时出现的错误是编译错误(也称为:错误,因为您的代码不遵循语言规定的规则)。您在运行时得到的是运行时异常(也称:您的代码遵循语言规则,但在执行时可能会出错)。我想知道为什么我可以执行“int I”,但不能对类执行相同的操作。我刚刚意识到我可以声明一个类,而不是执行它的函数。@ PuBB:在C++中,你可以调用函数“<代码>主< /代码>”。函数调用可以从全局对象的构造函数、初始值设定项表达式等发出。这里面有很多危险的陷阱,但可能性是存在的。