[英]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.