c++语言程序设计——头文件和引用系统头文件、用户头文件的定义及使用方法

简介: c++语言程序设计——头文件和引用系统头文件、用户头文件的定义及使用方法

头文件


头文件是拓展名为.h的文件,其包含了函数的声明和宏定义,它可以被多个源文件引用共享。头文件分为两种类型:编译器自带的系统头文件和程序员即用户编写的头文件。


引用头文件


1、引用系统头文件

编译器自带的系统头文件即#include<iostream>、#include<cmath> 等等这些由#include后面加上< 文件名 >所带的头文件,当我们在程序中要使用该头文件时,需要使用预处理指令#include来引用它,例如引用系统头文件file:


#include<file>      //在系统目录的标准列表中搜索文件名为flie的文件
...


2、引用用户头文件


用户头文件即我们自己定义的头文件,需要我们自己编写该头文件,编写好后在源文件当中就可以引用它来使用,当然当我们在程序中要使用该头文件时,也需要使用预处理指令#include来引用它,引用它即在#include后面加上" 文件名 .h",例如引用用户头文件file:

#include"file.h"      //在包含当前文件的目录搜索文件名为file的文件
...


实例


接下来,使用Visual Studio 2019来看一个例子,看具体定义和使用头文件的实例。


例、设计一个基类Shapes,包含成员函数display()并声明为纯虚函数。Shapes类公有派生产生矩形类Rectangle和圆类Circle,分别定义display()函数实现其主要几何元素的显示。使用抽象类Shapes类型的指针(或引用),当它指向(或引用)某个派生类的对象时,就可以通过它访问该对象的虚成员函数display()实现动态多态性。


1、首先我们新建一个项目,打开后,在视图中调出解决方案管理器:

1666891291293.jpg

2、这里我们通过题目要求,我们是要定义类,并派生类等等,这时我们点击左侧的解决方案管理器创建一个头文件名为"headfile",即右键头文件,选择添加新建项,并选择头文件(.h),设置好名称后我们点击添加,即完成用户头文件定义的创建:

1666891302640.jpg

3、接下来,我们这里就开始编程:

emmm编程…

1666891324558.jpg


然后检查代码无误后,点击左上角文件——保存heafile.h,即完成了用户头文件的编写和保存。


4、接下来,我们要编写main()主函数来实现题目要求,利用display()等函数实现其主要几何元素的显示。

5、在左侧的解决方案管理器中,新建一个源文件,然后这里是选择C++文件(.cpp)新建。

1666891334610.jpg

6、编写主函数,注意这里的#include要包含我们刚刚创建的头文件headfile,即#include"headfile.h",不要漏掉了.h。

1666891347365.jpg

7、运行无误,正确!

1666891364473.jpg


注意


刚刚更新,发现有错误,具体错误看下图:

1666891398157.jpg

也就是我们在一个项目工程例添加了多个包含main()主函数的源文件,造成出现“C:\Users\myj\Desktop\实验5\实验5\Debug\实验5.exe : fatal error LNK1169: 找到一个或多个多重定义的符号”的错误,其实这种情况我们只需将不需要运行的那个源文件双击右键属性,在属性页中将从生成中排除改为是,这样就运行另一个源文件,即将其禁用排除。

1666891407652.jpg

排除后,我们发现源1图标发生改变,即被排除:

1666891420214.jpg

若有多个要排除的源文件,即按住ctrl键选中多个后右键属性排除。


结语


使用用户定义头文件可以使代码更加简洁和更方便查出错误,可以避免创建了多个源文件时,运行源文件会有报错情况。

以上就是头文件及引用系统头文件、用户头文件的使用方法的内容,感谢您的阅读和支持,篇幅较长,若有表述以及代码中的不当之处,望指出!您的指出和建议能给作者带来很大的动力!!!

相关文章
|
28天前
|
存储 C++
C++语言中指针变量int和取值操作ptr详细说明。
总结起来,在 C++ 中正确理解和运用 int 类型地址及其相关取值、设定等操纵至关重要且基础性强:定义 int 类型 pointer 需加星号;初始化 pointer 需配合 & 取址;读写 pointer 执向之处需配合 * 解引用操纵进行。
140 12
|
6月前
|
存储 负载均衡 算法
基于 C++ 语言的迪杰斯特拉算法在局域网计算机管理中的应用剖析
在局域网计算机管理中,迪杰斯特拉算法用于优化网络路径、分配资源和定位故障节点,确保高效稳定的网络环境。该算法通过计算最短路径,提升数据传输速率与稳定性,实现负载均衡并快速排除故障。C++代码示例展示了其在网络模拟中的应用,为企业信息化建设提供有力支持。
167 15
|
6月前
|
存储 算法 安全
企业员工数据泄露防范策略:基于 C++ 语言的布隆过滤器算法剖析[如何防止员工泄密]
企业运营过程中,防范员工泄密是信息安全领域的核心议题。员工泄密可能致使企业核心数据、商业机密等关键资产的流失,进而给企业造成严重损失。为应对这一挑战,借助恰当的数据结构与算法成为强化信息防护的有效路径。本文专注于 C++ 语言中的布隆过滤器算法,深入探究其在防范员工泄密场景中的应用。
109 8
|
6月前
|
安全 C++
【c++】继承(继承的定义格式、赋值兼容转换、多继承、派生类默认成员函数规则、继承与友元、继承与静态成员)
本文深入探讨了C++中的继承机制,作为面向对象编程(OOP)的核心特性之一。继承通过允许派生类扩展基类的属性和方法,极大促进了代码复用,增强了代码的可维护性和可扩展性。文章详细介绍了继承的基本概念、定义格式、继承方式(public、protected、private)、赋值兼容转换、作用域问题、默认成员函数规则、继承与友元、静态成员、多继承及菱形继承问题,并对比了继承与组合的优缺点。最后总结指出,虽然继承提高了代码灵活性和复用率,但也带来了耦合度高的问题,建议在“has-a”和“is-a”关系同时存在时优先使用组合。
328 6
|
10月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
535 4
|
11月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
239 5
|
11月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
11月前
|
存储 分布式计算 编译器
深入计算机语言之C++:C到C++的过度-2
深入计算机语言之C++:C到C++的过度-2
|
7月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
3月前
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
85 0