Chapter02 第一节 开始学习C++
2.1 进入C++
第一个示例程序:
//myfirst.cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "Come up and C++ me some time.";
cout << endl;
cout << "You won't regret it!" << endl;
return 0;
}
2.11 main()函数
- 在c++11强制标准中,mian应定义为int类型,在某些也需要写成void类型,然而因为void不是强制标准,所以部分环境下是无法编译的,考虑到软件的泛用性,最好写成int类型。在C语言中,mian的类型声明可以省略,默认类型为int类型。C++中,
()和(void)等效,表示不接受任何参数,C中不一样(空着表示沉默?)。另外,ISO的C++标准允许没有return x语句,在函数结尾默认加入return 0。 - C++独立程序的入口规定必须是
main(),并且大小写敏感。 在某些DLL模块或者特殊环境中,可以没有mian()函数。当然,他也会调用其他名字的主函数。
2.12 注释
两种注释方式:
// xxxxxxx/* xxxxxxx*/
2.13 预处理文件
C++内置一个预处理器,在程序进行主编译之前对源文件进行处理。
C++程序编译过程:C++源程序->编译预处理->编译->汇编程序->链接程序->可执行文件
- 编译预处理: 读取源代码,处理伪指令和特殊符号。伪指令包括宏定义、条件编译、头文件,特殊符号包括
LINE、FILE等。- 编译: 将预编译生成的文件翻译成中间代码/汇编代码,生成汇编文件
- 汇编: 将中间代码/汇编代码翻译成机器码,生成目标文件
- 链接: 将汇编产生的目标文件链接起来,还包括引用的库、调用的库文件函数等。链接完成之后即可生成可执行文件。
2.14 头文件
C++兼容老式的C头文件,如math.h,在C头文件中使用C++特性,最好还是找C++的头文件,如math.h -> cmath(ISO标准委员会要求不使用任何扩展名)
2.15 命名空间
命名空间使用
using编译指令,这是编译指令的一种。命名空间可以理解为对一块空间的命名。如有两个封装好的库,分别都有一个
check()的方法,使用命名空间来区分不同的库的不同的check()方法。A::check(),B::check()using namespace std让std对其空间内的所有名称可用,还可以麻烦点,在代码内使用std::cout。在using中也可以指定命名空间的名称,如using std::cout。这样可以避免一些潜在的风险。
2.16 Cout输出语句

cout<< "xxx" << endl中,cout是一个预定义好的对象,负责输出。<<是插入运算符,可以重载。endl为换行控制符,可以用\n代替。
2.17 代码格式化
尽管每个人的代码风格不尽相同,但是代码风格是一个很重要的事情,直接影响代码可读性和重构的难易度。尽量使用通用的代码风格,注意控制缩进、括号位置等。
Chapter02 第一节 开始学习C++的更多相关文章
- Linux第一节课学习笔记
我的目标是考过RHCE 开源软件有使用.复制.传播.收费.修改及创建衍生品自由,其中后二者只有开源软件才有,前四者开闭源共有.
- 第一节,学习cocos2d-x的前期准备
1,我用的mac系统,在mac系统上装上cocos2d-x的模板 2,用doxygen工具装上API,这个非常重要,没有API的开发不叫开发,因此我们要习惯看API 3,知道怎么查看cocos2d-x ...
- MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件
MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件 前言 万事开头难,有了<MapSer ...
- OpenNebula学习第一节OpenNebula Front-end Installation
一.说说情怀 随着公司硬件开发资源的不足,构建一个云平台似乎重要了起来.当然,也不是这个平台搭建的主力,出于工作的需求和个人兴趣爱好,接下来就来学习一下OpenNebula相关的东西,这是第一节课,先 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- 1001-MySQL学习-第一节自习课
MySQL学习(第一节自习课) 一. 软件下载.安装 下载地址:https://dev.mysql.com/downloads/installer/ 位置:mysql->installer-&g ...
- VUE2.0实现购物车和地址选配功能学习第一节(来源--慕课网河畔一角)
第一节 vue知识 vue-resource:和后台交互的一个插件,实现get.post和jsonp等功能.(替代jQuery) vue特点: 1.易用:通过创建vue实例,{{}}绑定数据十分方便 ...
- seajs第一节,seajs基本使用
什么是seajs,它是干什么使用的,可以去网上搜索一下, 官网:http://seajs.org/docs/ 基本使用seajs <!DOCTYPE html> <html> ...
- 2014年度辛星html教程夏季版第一节
从今天起开始在博客园开启自己的html教程啦,先从第一节开始把,首先推荐一个网站,就是http:/www.w3cschool.cc,这是一个公开的教学网站,但是它有一个问题,那就是虽然很全面,但是不是 ...
随机推荐
- Django学习系列3:创建仓库
在创建仓库之前,在项目superlists中新建一个Python文件,命名为functional_tests.py,里面的内容如下: # File: functional_test.py # Auth ...
- C#WinFrom导出Excel
采用的是以DataGridView的形式导出,使用NPOI.dll 1.由于使用的是DataGridView,所以类需要创建在From的Project下,DLL导入NPOI 2.代码如下 using ...
- 图形计算器(geogebra[5.0.278.0])使用QQ浏览器打开下载
点击这里下载Geogebra图形计算器
- 基于注解的IOC配置
1 明确 注解配置和XML配置要实现的功能都是一样的,都是要降低程序间的耦合.只是配置的形式不一样. 关于实际的开发中到底是使用XML还是注解,每家公司有着不同的习惯.具体问题具体分析. 2 环境搭建 ...
- 使用XML的方式实现账户的CRUD
1 需求和技术要求 1.1 需求 实现账户的CRUD. 1.2 技术要求 使用Spring的IOC实现对象的管理. 使用QueryRunner作为持久层的解决方案. 使用C3p0作为数据源. 2 环境 ...
- VM架构设计文档初稿v0.01
VM架构设计文档初稿v0.01 文档介绍 本文档是经过讨论,作为VM新架构设计开发中的重要依据.对该架构的整个系统的结构进行详实细致的描述.阐述框架结构,说明该架构所采取的设计策略和所有技术,并对相关 ...
- python爬虫及结巴分词《攀登者》影评分析
<攀登者>影评爬取及分析 0.项目结构 其中simkai.ttf为字体文件,Windows查看系统自带的字体 C:\Windows\Fonts 一.爬取豆瓣影评数据 # -*- codin ...
- Linux 性能测试工具Lmbench详解
Linux 性能测试工具Lmbench详解 2010-06-04 16:07 佚名 评测中心 字号:T | T Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定 ...
- C++在delete指针后要赋值为NULL
C++标准规定:delete空指针是合法的,没有副作用. 所以我们在Delete指针后赋值为NULL或0是个好习惯.对一个非空指针delete后,若没有赋NULL,若再次delete的话 有可能出现问 ...
- 转 弹性反向传播(RProp)和均方根反向传播(RMSProp)
from http://blog.csdn.net/tsq292978891/article/details/78619384 都是一种权值更新算法,类似于SGD算法,其中,RMSProp是RProp ...