在单独的文件中类
Classes in separate files
我正在尝试在 codeBlocks 中的单独文件中使用类,但是我遇到了以下问题。
我有3个文件:main.cpp
,clasa.h
和clasa.cpp
。
clasa.h
#pragma once
class clasa
{
public:
clasa();
};
clasa.cpp
#include "clasa.h"
#include <iostream>
using namespace std;
clasa::clasa()
{
cout<<"hi";
}
main.cpp
#include <iostream>
#include "clasa.h"
using namespace std;
int main()
{
clasa obj;
return 0;
}
当我将这3个文件包含在项目中时,输出为hi
。
当i 不将它们包含在一个项目中时,main.cpp不会构建。但是,如果我用"clasa.cpp"
替换"clasa.h"
,则可以再次工作。
为什么它不起作用?
tl; dr-看起来您没有在构建的可执行文件中编译标题文件(*.h(。
单击运行按钮时,计算机会做两件事。首先,它编译代码并制作可执行文件。然后它运行可执行文件。首先,编译器如何工作?它读取 *.cpp,当它遇到" #include"时,它替换了指定文件中的代码。编译器处理#include" clasa.h"行之后,main.cpp文件将看起来像这样:
#include <iostream>
#pragma once
class clasa
{
public:
clasa();
};
using namespace std;
int main()
{
clasa obj;
return 0;
}
它也对此也是如此。当您从项目中删除 *.H文件时,编译器不会在可执行文件中包含代码。它与 *.cpp变体一起使用的原因是因为编译器不包含 *.cpp文件。他们可以作为运行程序访问。希望这对您有帮助。
相关文章:
- 用C++在单独的头文件中完成函数体
- 如何使用单独文件中的派生类访问友元函数对象
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- 如何将 2 个类分成单独的 .h 文件并正确设置它们
- C++ 链接到单独的.cpp文件说"multiple definitions"
- 从单独的文件中读取树
- 当结构位于单独的头文件中时'unregistered datatype'在 QML 中出现Q_GADGET错误
- 使用 Premake5 构建库,每个构建没有单独的项目文件
- 为什么要将函数声明和定义放在单独的文件中
- 使用 #include 将大量重复代码放入单独的文件中是否可以和/或正常?
- 创建单独的实现文件和头文件
- 在C++中对文件中的值单独执行计算
- 使用 ctest 的每个测试都需要单独的文件吗?
- 好友成员函数可以在单独的文件中使用吗?
- 运行单独的 cpp 文件,每个文件都有 main()
- 在 h 和 cpp 文件中单独声明和实现模板有时有效,有时会出现链接器错误
- 单独的类声明和方法定义文件问题
- 如何在C 中的Little Endian中读取来自二进制文件的单独的十六进制字符
- Howo 使用 cl 预处理为 masm 组装生成一个单独的文件
- 单独文件中各种 c++ 类的标头出现问题