后台开发:核心技术与应用实践1.1 第一个C++程序

第1章


C++编程常用技术

我们通过固定格式和固定词汇的“语言”来影响他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然它们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去与他人交流。同样,我们也可以通过“语言”来影响计算机,让计算机为我们做事情,这样的语言就叫作编程语言。

C语言是1972年由美国贝尔实验室的D.M.Ritchie设计成功的,它是为计算机专业人员设计的,大多数系统软件和许多应用软件都是用C语言编写的。但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。C++也是由美国贝尔实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。C++保留了C语言原有的所有优点,与C语言兼容,并且增加了面向对象的机制。用C语言写的程序基本上可以不加修改地用于C++开发工具。从C++的名字可以看出它是C的超集。C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型程序设计语言。

本章主要讲述C++中的常用技术,让读者可迅速地、由浅入深地熟悉这门语言。

1.1 第一个C++程序

刚开始接触一门编程语言,一般会从写一个输出Hello world的程序开始。

【例1.1】 用程序输出Hello world。

#include<iostream>

using namespace std;

int main()

{

     cout<<"Hello world."<<endl;

     return 0;

}

把上述程序编写在一个叫helloworld.cpp的文件中,并将它放到Linux机器上的某个目录下,执行g++ helloworld.cpp命令,会在该目录下生成a.out文件。执行./a.out命令,即可得到输出结果:Hello world.。

先看程序的第一行(#include<iostream>),这不是一个C++语句,是一个预处理语句,编译器的预处理器把输入输出流的标准头文件包括在本程序中,所以不需要在句末加分号(;)。include一个文件,就是把这个文件的所有内容都加进来。图1-1展示了包含文件的过程。

如图1-1所示,include一个.h文件,就是等于把整个.h文件给复制到程序中,include一个.cpp文件也是如此。

除了#include< >的方式来包含一个头文件,还会见到#include" "的方式来包含一个头文件。而#include< >与#include" "的区别是:#include< >常用来包含系统提供的头文件,编译器会到保存系统标准头文件的位置查找头文件;而#include" "常用于包括程序员自己编号的头文件,用这种格式时,编译器先查找当前目录是否有指定名称的头文件,然后从标准头目录中进行查找。

还经常会看到#include<iostream>和#include<iostream.h>的使用。事实上,#include<iostream>和#include<iostream.h>是不一样的,因为iostream和iostream.h是两个不同的文件,前者没有后缀。实际上,在你的编译器include文件夹里面可以看到,两个文件打开后,里面的代码是不一样的。后缀为.h的头文件在C++标准已经明确提出不再支持了,早些的C语言为了实现将标准库功能定义在全局空间里,声明放在在带.h后缀的头文件里。C++标准为了和C语言区别开,也为了正确使用命名空间,规定头文件不再使用后缀.h。因此,当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现方法。换句话说,iostream是iostream.h的升级版,大部分的头文件都有一个不带.h扩展名的文件与之相对应。不过有个特例,<string>并非<string.h>的升级版。

再看程序的第二行:“using namespace std;”中使用了命名空间std。命名空间是为了让大量类名共存而不至于引起冲突而设计的。C++标准函数库的所有元素都被声明在一个命名空间中,这就是std命名空间。为了能够访问它的功能,使用这条语句来表达将使用标准名空间中定义的元素。这条语句在使用标准函数库的C++程序中频繁出现,本书中大部分例子的代码中也将用到它,需要注意的是,最好不要在头文件中使用命名空间,否则容易造成命名冲突。

继续看程序的第三行:“int main()”,这是主函数(main function)的起始声明。主函数是所有C++程序的运行的起始点。不管它是在代码的开头、结尾还是中间,此函数中的代码总是在程序开始运行时第一个被执行。main后面跟了一对圆括号(),表示它是一个函数。C++中所有函数都跟有一对圆括号(),括号中可以有一些输入参数。如例1.1中显示,主函数(main function)的内容紧跟在它的声明之后,由花括号{}括起来。

程序的第四行:“cout<<"Hello world."<<endl;”是本程序中最重要。cout是C++中的标准输出流(通常为控制台,即屏幕),这句话把一串字符串(本例中为Hello World)插入到输出流中。cout在的声明在头文件iostream中,所以要想使用cout必须将该头文件包括在程序开始处。注意这个句子以分号结尾。分号标示了一个语句的结束,C++的每一个语句都必须以分号结尾。C++程序员最常犯的错误之一就是忘记在语句末尾写上分号。

最后一行(return 0;)中返回语句(return)标志主函数main()执行结束,并将该语句后面所跟代码(在本例中为0)返回。这是在程序执行没有出现任何错误的情况下最常见的程序结束方式。在后面的例子中会看到所有C++程序都以类似的语句结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台开发核心技术应用实践 作者:徐晓鑫 著 出版日期:2016年08月06日 封面宣传语:腾讯云平台技术总监黄世飞、Facebook对外支付项目主程张子兴、微软软件工程师彭可竞、阿里巴巴资深算法工程师周乐、百度大数据高级测试工程师畅晋联袂推荐;围绕后台开发需要掌握的核心技术,从多个方面、多个角度进行了阐述,覆盖了该领域的几乎所有内容;充分抓住本质并结合实践,文字通俗易懂,可操作性强 出版书名:后台开发核心技术应用实践 作者:徐晓鑫 著 封底文字 专家评价 后台开发是一个“历史悠久”的领域,同时也是一个沉淀深厚,高技术价值的领域。本书清晰、严谨、务实的风格显示出晓鑫对该领域知识的深刻理解。 ——张子兴 Facebook对外支付项目主程,美国加州MenloPark 每一位从事后台开发的专业人士都需要一本后台开发指南。对每一位想要认真从事该领域工作的人来说,本书是一本绝对必读的书籍。 ——彭可竞 微软软件工程师,美国华盛顿州Redmond 本书是作者多年后台开发、架构和研究的精华。书中用通俗的文字、详尽的示例代码,结合实际工作中的案例,讲述了后台开发方方面面的知识,内容丰富。对于从事后台开发的人员,这是一本很好的由浅入深的学习书籍。 ——周乐 阿里巴巴资深算法工程师,北京望京 使用C++语言进行后台开发有一定的门槛,本书可以很好地帮助你跨过这个“门槛”。 ——畅晋 百度大数据高级测试工程师,北京上地 前勒口 互联网网民日益剧增,各种应用层出不穷,各项技术更新不断。单是游戏行业,近几年就经历了从端游、页游到手游的巨大变迁,客户端更新迭代之快,始料未及。而后台开发使用到的技术,却变化不是很大。让服务性能更高、处理能力更强、安全性更好,是后台开发工程师永恒的主题。 后台开发中用到的技术,深而广,需要读的“大部头”很多,光是Richard Stevens的APUE,UNP,TCP/IP详解就够读个半年以上。读者通过阅读本书,可以从实践出发,快速由浅入深地进入后台开发领域。在读完本书,有了实践的经验之后,再去阅读大师们的著作,会更有体会,更懂得如何欣赏。 读书的最高境界莫过于“把书读薄,把书读厚”。本书文字通俗易懂,让你更快地“读薄”,同时又涉及较多的核心知识点,顺着这些知识点,读着读着也发觉“读厚”了。 后勒口 徐晓鑫,腾讯资深软件研发工程师,先后在腾讯游戏之洛克王国、QQ会员、QQ秀等项目工作,精通后台开发各种技术,实战经验丰富。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值