[英]Error While Compiling this C++ code
编译此c ++代码时出现以下错误。 这可能是什么原因?
# include <iostream>
# include <stdio.h>
# include <conio.h>
using namespace std;
class Foo
{
int a;
public :
virtual void Fun1();
Foo()
{a=5;}
};
Class X: public Foo // Error class does not name a type
{
Foo f;
public:
void Fun1() { }
X()
{
memset(&f,0x0,sizeof(f));
}
};
int main()
{
X x; // Error 'X undeclared and expected ; before x, i guess because of first one
getch();
return 0;
}
Class
应该是class
。
关键字class
以小写c
开头。 这样可以修复您报告的错误,但是仍然存在更多错误。
您声明Foo::Fun1
,但未定义它。
最后,您需要在std::memset
的声明中包含<cstring>
。 另一个标头可能会间接包含它,但您不能依赖它。
然后,您将具有未定义的运行时行为,因为使用memset
覆盖非POD对象是无效的Foo
具有虚函数,POD也没有。
Class X: public Foo
应该是class X: public Foo
,这应该修复这两个错误。
C ++语言区分大小写,并且要求其关键字以小写形式编写。 class
是有效的C ++关键字,但Class
不是。 在声明X class
时,将Class
重命名为class。
Class X
以大写C命名。这就是问题所在。
您的错误实际上始于: Class X: public Foo // Error class does not name a type
Class
必须为class
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.