编译此C++代码时出错
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
以小写c
开头。这将修复您报告的错误,但仍有更多错误。
您声明了Foo::Fun1
,但没有定义它。
最后,您需要在std::memset
的声明中包含<cstring>
。可能是另一个标头间接包含了它,但你不能依赖它。
然后,您将有未定义的运行时行为,因为使用memset
覆盖非POD对象是无效的——Foo
有一个虚拟函数,因此不是POD。
Class
应该是class
。
Class X: public Foo
应该是class X: public Foo
,这应该可以修复这两个错误。
C++语言区分大小写,要求其关键字用小写书写。class
是有效的C++关键字,但Class
不是。在声明类X时,将Class
重命名为class
。
Class X
以大写C命名。这就是问题所在。
您的错误实际上始于:Class X: public Foo // Error class does not name a type
Class
必须是class
。
相关文章:
- 在Linux for Windows上编译C++代码时出错
- 尝试将另一个子句添加到代码中时出错
- 将代码从 Python 转换为 C++ 时出错
- <limits> 使用 VSC2019 编译旧代码时出错
- 使用 Visual Studio 代码读取 C++ 中的输入流时出错
- 在OpenGL中使用程序集代码渲染视频时出错
- 编译以下代码时出错
- Boost FFT示例-编译时出错,这段代码在做什么
- 编译在 Python 代码内部调用的 C++ 代码时出错,使用 Boost Python
- C++:为什么这段代码会出错?多元线性回归
- 混合开放MP/MPI代码中的多线程发送/接收时出错
- 将节点 js 代码集成到 cpp 库时出错
- 构建代码时出错
- 在字符串流中使用来自 github 的代码时出错
- 在主代码中调用 .hpp 函数时出错
- 将 find_if() 与数组一起使用的代码段中出错
- 我在字数C++的代码中哪里出错了
- 尝试从 Github 编译 OpenCV QT 代码时出错
- 编译创建 Eigen::ThreadPoolDevice 对象的代码时出错
- 编译 .cu 与 .cpp:即使没有任何 CUDA 代码,编译器也会出错