为什么要在c++程序中创建abc.h和abc.cpp文件
Why create abc.h and abc.cpp file in a c++ program?
可能重复:
在C++中,为什么有头文件和cpp文件?
我读了一些KDE教程,用来创建基本的等离子小部件和其他QT东西。我注意到的一件事是,几乎所有程序都有一个.h
和.cpp
,其头文件包含在cpp文件中。
我得到的基本东西是尽量减少文件中的混乱,使代码更可读。
我的问题是,在编写程序时,我应该在.h文件和.cpp文件中放入什么内容,以及它将如何对我改进代码有益。
例如,我创建了3个文件,add.h、add.cpp和pass.cpp。现在add.h有了这个函数,而其他2个有了定义。
添加.h
#include <iostream>
using namespace std;
int add (int x,int y);
添加cpp
#include "add.h"
int main() {
add (int x, int y) {
int z = x+y;
cout<<"Add is "<<"t"<<z;
}
return 0;
}
Pass.cpp
#include "add.h"
add (3,4);
然而,从这里的答案来看,这是行不通的。为什么C++中有头文件和.cpp文件?
add.h的内容是自动复制的,但我有几个错误。
主要原因是您可以包含多个.cpp文件中的.h,以促进模块/类之间的代码共享。
对于一个非常简单的应用程序(例如"helloworld",这是真的。拆分为.cpp和.h没有太多好处)
将所有函数完全写入".cpp"
文件,并首先将其写入程序中。在".h"
文件中,只编写proptype,即函数的声明。在程序结束时制作此".h"
文件。不要忘记在每个函数原型的末尾写一个分号(;)。
这是一种很好的编程实践,它使您可以在这些单独的文件中一次性编写代码,并在整个项目或任何其他数量的文件中使用它们的代码。
假设您有一个文件"myProgram.cpp"
和myProgram.h
,您可以在任何程序的开头包含这一行来使用它的代码。#include "myProgram.cpp"
。
当您的文件中有许多函数和声明时,它可以很好地工作。如果您有一小段代码,就不需要创建这些单独的文件。
您经常需要从其他翻译单元访问您在.cpp
文件中定义的东西-这些其他翻译单元需要知道他们可以访问什么,所以这些东西需要在其他翻译单元中声明。将声明放在头文件中意味着您可以将它们包括在另一个翻译单元中,而不是在每个需要访问声明元素的翻译单元中复制它们。
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Linux的Cpp上的计时器
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 命名空间中具有.h和.cpp文件的类
- 内置函数可查看CPP中的成员变量
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- Cpp-Tuple使用带有变量的get
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何通过cpp程序运行shell脚本
- 使用2个键的cpp-stl::优先级队列排序不正确
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 如何在cpp文件之间切换窗口?在Qt中
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我需要知道编译器如何在cpp中使用析构函数
- 如何在cpp.中使用协议缓冲区存储大缓冲区/数组(char/int)
- 无法在UE4中包含BP类到CPP类
- 在 CPP 中使用正则表达式将密码("ABC")子句屏蔽为密码("****")
- 为什么要在c++程序中创建abc.h和abc.cpp文件