初探C++程序的基本构成
C++程序的基本组成简介
C++程序的基本组成
这个C++程序例子,由一个程序单位(程序文件)【注①】组成,这是一个简单例子未使用类【注②】,其中包括:
1、头文件:可以认为头文件是你在调用函数时的一个桥梁。格式为:
#include〈引用文件名〉
c++的程序是由一个又一个的函数组成的,比如说刚刚这个程序里 就可以说包含了两个函数(其中一个函数包含在另一个函数里头),一个是主函数(main 函数),还有一个是输出函数cout。在c++中,除了主函数及自定义的函数,其他的函数都是包含于某些头文件里的,它们被称为库函数,想要调用这些函数,只要在程序的开头写上包含该函数的头文件就可以了。比如说包含cout函数的头文件是<iostream>(输入输出流),而我在函数中调用了cout这个函数,因此我需要在开头写上#include<iostream>(包含输入输出流)即可。
C语言传统采用扩展名为h的文件作为头文件,新版的纯粹C++头文件没有扩展名,但一些老式以及从C转化过来的有扩展名。头文件名的命名约定:
在C语言和C++中,头文件或包含文件是一个文件,通常是源代码的形式,由编译器在处理另一个源文件的时候自动包含进来。一般来说,程序员通过编译器指令将头文件包含进其他源文件的开始(或头部)。
一个头文件一般包含类、子程序、变量和其他标识符的前置声明。需要在一个以上源文件中被声明的标识符可以被放在一个头文件中,并在需要的地方包含这个头文件。
#include<stdio.h> //这种带了引号的通常是编译系统自带的头文件。
用户也可以自己定义头文件,如:
#include "abc.h" //这种带了引号的就是你自己定义的头文件。注意文件的位置要与你的主代码在同一个文件夹。
关于头文件 (c + +) 更多情况可参见头文件 (C++) | Microsoft Learn
如何自定义C语言.h头文件?_c语言定义头文件_吉大秦少游的博客-****博客
2、命名空间:名称空间是用来区分不同名称空间中的同名属性,主要是解决多人同时编写大型程序时名字产生冲突问题,如防止不同人写的函数出现重名出现问题的情况。使用格式为:
using namespace 命名空间名;
使用iostream头文件时,cout、cin、endl都放在名称空间std里面。可以用std::cout这种方式来指定使用的cout是std里面的cout,使用using namespace std就不需要用std::指定。
关于命名空间更多情况,可参见:C++ 命名空间简介_在代码中某段屏蔽namespace_软件开发技术深度爱好者的博客-****博客
c++中的namespace命名空间_1.6c++ 的namespace_tianguiyuyu的博客-****博客
3、主函数:系统默认的你这个程序运行的入口,换句话说,当你的源代码通过编译,成为一个程序,在计算机上运行时,它是从int main()(其中int代表这个函数的返回值类型)这里开始执行。
主函数声明后,下面有一对花括号({ }),花括号里面所表达的就是你这个函数想要干什么。
返回值:本程序主函数的最后有一句话:return 0,它的意思是主函数结束后向操作系统返回一个0值,也就是说,如果你的程序顺利地结束了,你的操作系统会得到一个0值,如果运行出错,那么得到的就也许是另外一个值了。不过,函数的返回值当然也可以是其他值,但是主函数的返回值我们一般默认为0,而且大多数算法竞赛中也会要求主函数的返回值为0。最后说一句,函数返回一个值返回给的是调用这个函数的地方,因为调用主函数的是操作系统,因此,函数也就是向操作系统返回一个值。
4、一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。内容较少的简单注释常用“//”,内容较长的常用“/*……*/ ”。用“//”作注释时,有效范围只有一行,即本行有效,不能跨行。而用“/*……*/”作注释时有效范围为多行。只要在开始处有一个“/*”,在最后一行结束处有一个“*/”即可。注释不会被编译器解析和执行。
通过注释,你可以向其他开发人员或自己记录代码的意图、功能、实现方法等相关信息。在编写代码时,建议添加适当的注释来帮助理解和维护代码。但同时要注意,过多或冗余的注释也可能会降低代码的可读性。因此,合理使用注释是一个良好的编程习惯。
【注①】需要提醒的是,一个C++复杂的程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元。
【注②】类(class)是C++新增加的重要的数据类型,是C++对C的最重要的发展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包括数据成员和成员函数,他们可以被指定为私有的(private)和公用的(public)属性。私有的数据成员和成员函数只能被本类的成员函数所调用。
推荐阅读
-
基于SSM的面向过程考核的高校课程实验系统-00941(免费领取源码+数据库) 可做计算机毕业设计 JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案等
-
Prompt 工程师的最佳实践 - Prompt 的基本组件、格式化输出和应用程序构建
-
Photoshop 图像最基本的构成要素是什么?
-
任务调度程序 xxljob 的使用历史-1.基本使用情况
-
微信 "扫一扫 "物联网,全面揭秘 "扫一扫 "背后的扫盲技术!-1.1 扫一扫感知物体是做什么的? 1.1 微信扫一扫是做什么的? 扫一扫识物是指以图片或视频(商品图片:鞋/包/美妆/服饰/家电/玩具/图书/食品/珠宝/家具/其他商品)为输入媒介,挖掘微信内容生态中的有价值信息(电商+百科+资讯,如图1所示),并展示给用户。这里的电商基本涵盖了微信小程序覆盖上亿SKU的全量优质电商,可以支持用户货比N家并直接下单购买,百科和资讯则聚合了微信内的头部自媒体如搜狗、搜搜、百度等,向用户展示和分享拍摄商品相关的内容资讯。 图 1 扫一扫识别功能示意图 欢迎大家更新iOS新版微信→扫一扫→识货,亲自体验,也欢迎大家通过识货界面的反馈按钮向我们提交反馈意见。 扫一扫识物实景图展示 1.2 扫一扫识物有哪些使用场景? 扫一扫识物的目的是为用户访问微信内部生态内容开辟一个新窗口,以用户扫图片为输入形式,为用户提供微信生态内容中的百科、资讯、电商等作为展示页面。除了用户熟悉的扫一扫操作外,我们还将进一步拓展长按操作,让用户更方便地进行扫一扫操作。"扫一扫知事 "的落地场景主要涵盖三大部分: a. 科普知识: a.科普知识。用户通过扫一扫,可以在微信生态圈中获取该对象的百科、资讯等常识或趣闻,帮助用户更好地了解该对象; b.购物场景。同样的搜索功能支持用户看到喜欢的商品立即检索到微信小程序电商中的同款商品,支持用户即扫即购; c.广告场景。扫一扫识别物体可以辅助公众号文章、视频更好地理解其中蕴含的图片信息,从而更好地投放匹配广告,提高点击率。 1.3 Sweep Sense 为 Sweep 家族带来了哪些新技术? 对于扫一扫来说,大家耳熟能详的应该就是扫一扫二维码、扫一扫小程序码、扫一扫条形码、扫一扫翻译了。无论是各种形式的编码还是文字字符,都可以看作是图片的一种特定编码形式,而物的识别则是对自然场景图片的识别,这对于扫一扫家族来说是一个质的飞跃,我们希望从物的识别入手,进一步拓展扫一扫对自然场景图片的理解能力,比如扫酒、扫车、扫植物、扫人脸等服务,如下图3所示。 图 3 Sweep 家族
-
计算 24 点的 C++ 程序
-
用 C++ 程序理解汉字的代码内表示法
-
C/C++ 程序中的二进制查找算法示例
-
[数学建模算法] (4) 整数程序设计的基本概念和常规算法:分支与边界法
-
数学建模的基本算法 第 2.1 章 - 整数程序设计 (ILP):分支与边界 + 切分平面