在C ++中的头文件中应该包含什么内容?

用户2932587

我才刚刚开始我的第一个C ++程序,并且在我学习的过程中几乎就是在学习。该程序应该具有3个不同的文件,一个头文件(prog1.h),一个prog1.cpp文件(不确定该术语的正确术语)和一个包含main:测试我们程序的测试文件(prog1_test.cpp )。

在这方面都没有寻求帮助(但是,我确定一旦遇到问题,我肯定会发布另一个问题),但认为您需要知道该程序应该做什么才能理解我的问题。我们的程序应该从文件中读取一些数字,并将这些数字放入2D数组中。然后应该为每个数字值分配字符,并打印当前数组和使用字符创建的“图片”。然后它将遍历数组,确保每个数字与其邻居的值相差不超过1,如果相差不超过1,则程序将用其邻居值的平均值替换该数字。然后程序将打印出此校正后的数组,并使用分配给校正后的数组的字符创建“图片”。

我知道头文件应该包含将在多个文件中使用的代码,但是在弄清楚程序的哪些部分需要放入该文件时遇到了麻烦。例如,我的打开,读取和关闭数据文件的代码是否包含在此处,或者由于只打开,读取和关闭该文件一次而没有?

空值

头文件包含函数和类声明。这些仅声明函数的名称,其返回类型及其参数列表。.cpp文件包含这些功能的定义-即实际实现。如果#include在其他文件中,头文件对于程序的其余部分是可见的,但是实现细节隐藏在.cpp文件中。

在.cpp文件中声明的/定义的内容(.h文件以外的内容)对程序的其余部分都不可见,因此您可以在.cpp文件中定义内部变量,帮助函数等,而这些实现细节将不会可见。foo()下面我的示例。

您的程序的大致草图如下所示:

在prog1.h中:

#include <iostream> // and whatever other libraries you need to include

#define ARRAY_SIZE 100 // and other defines

// Function declarations

// Read number from file, return int
void read_number(int array[ARRAY_SIZE][ARRAY_SIZE]);

char assign_char(int n);

void print_array(int array[ARRAY_SIZE][ARRAY_SIZE]);

void neighbor_check(int array[ARRAY_SIZE][ARRAY_SIZE]);

在prog1.cpp中:

// included headers, defines, and functions declared in prog1.h are visible
#include "prog1.h"

void read_number(int array[ARRAY_SIZE][ARRAY_SIZE]) {
    // implementation here
}

char assign_char(int n) {
    char c;
    // implementation here
    return c;

}

void print_array(int array[ARRAY_SIZE][ARRAY_SIZE]) {
    // implementation here
}

void neighbor_check(int array[ARRAY_SIZE][ARRAY_SIZE]) {
    // implementation here
}

// not visible to anything that #includes prog1.h
// since it is not declared in prog1.h
void foo() {
    // implementation here
}

在prog1_test.cpp中:

// included headers, defines, and functions declared in prog1.h are visible
#include "prog1.h"
// any other includes needed by main()

int main() {
   int array[ARRAY_SIZE][ARRAY_SIZE];

   read_number(array);

   for (int i = 0; i < ARRAY_SIZE; i++) {
       for (int j = 0; j < ARRAY_SIZE; j++) {
           assign_char(array[i][j]);
       }
   }

   neighbor_check(array);

   print_array(array);

   return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在C中包含头文件

在C ++代码中包含头文件的更好方法是什么?

VSCode 在 c 中包含头文件

无法在C ++中包含头文件

在Swift中包含C ++头文件

C++ 应该在头文件和源代码中包含字符串

为什么C ++运算符new / delete / variant不应该放在头文件中?

为什么C ++ Windows Store应用程序头文件对cpp文件中的包含感到满意?

为什么/如何在Visual Studio中默认包含某些c ++头文件?

任何具有内部链接的内容都可以放在C ++的头文件中。为什么?

在C ++中的不同目录中包含头文件

pycparser如何读取C代码文件中包含的头文件?

是否可以在C ++中以间接方式包含头文件

生成C ++在原子中包含头文件防护?

在函数C ++ 14中包含STL头文件

在 C++ 公共头文件中包含嵌套类

在 C++ 中包含头文件的特定部分

如何在另一个头文件中包含c头文件?

在C中,我可以推迟头文件的“ typedef”,直到包含并使用头文件吗?

C ++是否包括所有包含在头文件中的头文件?

在C / C ++文件中定义功能,并在头文件中包含相应的文件

在C ++中,头文件到底是什么,实现文件中到底是什么?

C头文件包含在另一个头文件中,并且都包含在ac文件中

在C#中解析C头文件

.c文件是否应该包含.h文件已经包含的内容?

C++ 编译不同的 .cpp 文件,将它们包含在头文件中

C ++在多个源文件中包含具有相同类实现的不同头文件

你如何在 C++ 中包含头文件和实现文件?

C文件中的头文件路径