【C++ Primer 5th】Chapter 1
1. 每个C++都包含至少一个函数,其中一个必须为main函数,且 main 函数的返回类型必须为 int。
2. 函数定义包括:返回类型,函数名,形参列表,函数体
3. main 函数返回值用来指示状态,0表示成功,其他值含义由系统定义,通常用来表示错误类型。
4. 通过 echo 命令可以获得 main 函数返回值。UNIX: echo $? Windows : echo %ERRORLEVEL%. -Wall和/W4是打开警告选项,能对有问题的程序结构发出警告
| 编译器 | 系统环境 | 编译 | 运行 | 获取返回值 |
|---|---|---|---|---|
| VS | Windows | c1 /EHsc /W4 prog1.cc |
prog1 |
echo %ERRORLEVEL% |
| GNU | Unix | g++ -std=c++11 -Wall prog1.cc |
./a.out |
echo $? |
5. 标准库有四个IO对象,cin,cout,cerr(警告错误、不缓冲),clog(一般性信息、缓冲). 默认cin和cerr会刷新cout缓冲区。程序异常终止时不会刷新cout缓冲区。读写缓冲区的动作与程序中的动作是无关的。
6. #include指令和头文件名称必须在同一行,且指令必须在所有函数外。
7. << 和 >> 运算结果皆为左侧运算对象。
8. 写入endl效果是结束当前行,并将与设备关联的缓冲区中的内容刷新到设备中。程序员应该一直保持刷新流,否则程序崩溃时输出可能还留在缓冲区中。
9. 命名空间可以避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。标准库定义所有名字都在命名空间std中,即调用标准库需显式说明作用域std::。通过使用作用域运算符 :: 来指出指定命名空间中的名字。
10.注释有两种:单行注释和界定符对注释。注释界定符内可以包含除*/之外的任意内容。注释界定符不能嵌套。
11. 当遇到文件结束符或遇到一个无效输入时,istream对象的状态会变为无效,即假。Windows:Ctrl+Z,然后按Enter或Return键;Unix:Ctrl+D
12. 文件重定向:prog1<infile>outfile prog1为exe格式文件,
13. 成员函数是定义为类的一部分的函数,有时也被称为方法。
14. 点运算符只能用于类类型的对象。
【C++ Primer 5th】Chapter 1的更多相关文章
- 【C++ Primer 5th】Chapter 15
摘要: 1. 面向对象程序设计的核心思想是数据抽象.继承和动态绑定.数据抽象将类的接口和实现分离:继承定义相似的类型并对齐相似关系建模:动态绑定,在一定程度上忽略相似类型的区别,而以统一的方式使用它们 ...
- 【C++ Primer | 15】C++虚函数表剖析①
概述 为了实现C++的多态,C++使用了一种动态绑定的技术.这个技术的核心是虚函数表(下文简称虚表).本文介绍虚函数表是如何实现动态绑定的. C++多态实现的原理: • 当类中声明虚函数时,编译器会 ...
- 【c++ primer, 5e】设计Sales_data类 & 定义改进的Sales_data类
[设计Sales_data类] 1.考虑Sales_data类应该有那些接口. isbn.combine.add.read.print... 2.考虑如何使用这些接口. Sales_data tota ...
- 【c++ primer, 5e】函数重载
[函数重载] Java中的重载一般是指重载构造器,或是子类覆写父类的方法:C++中的重载稍微复杂一些. 定义重载函数 典型的数据库应用. Record lookup(const Account& ...
- 【c++ primer, 5e】返回类型和return语句
[无返回值函数] 1.在c++的void函数中,可以显式地使用return;语句来提前结束函数的调用. [有返回值函数] 1.值是如何被返回的:返回一个值的方式和初始化一个变量或者形参的方式完全一样. ...
- 【c++ primer, 5e】参数传递
p187~p199: [传值参数] [传引用参数] 使用引用形参返回额外信息:传入一个(或者多个)额外的引用实参,令其保存字符出现的次数. 6.11 #include <iostream> ...
- 【c++ primer, 5e】类的其他特性(卒)
1 - Class Members Revisited 2 - Functions That Return *this 3 - Class Types 4 - Friendship Revisited ...
- 【C++ Primer | 10】再探迭代器
插入迭代器 1. 测试代码: #include<iostream> #include<vector> #include<list> #include<iter ...
- 【C++ Primer | 10】泛型算法
#include<iostream> #include<algorithm> #include<vector> #include<string> #in ...
随机推荐
- c语言的编译和运行流程
C语言源程序经过编译器进行词法分析 语法分析 等过程生成中间语言(object后缀的文件)编译期间会生成一个字符表和静态分配空间(如new static 全局变量)它们所需的内存空间可以计算出来放在链 ...
- yii2.0 console执行php守护进程
//该方法只需执行一次public function actionIndex(){ $pid =pcntl_fork();//在当前进程中生成一个新的子进程 //$pid会有三种形式 $pid==-1 ...
- Python 基本数据类型和序列类型
python 3.6.4 中,有9种数据类型: int, float, bool, complex, list, tuple, string, set, dict (1).int 整型,不可变 (2) ...
- VS2015 C#6.0 中的那些新特性(转自http://www.cnblogs.com/henryzhu/p/new-feature-in-csharp-6.html)
自动属性初始化 (Initializers for auto-properties) 以前我们是这么写的 为一个默认值加一个后台字段是不是很不爽,现在我们可以这样写 只读属性的初始化(Getter-o ...
- CoreMotion 加速器陀螺仪
初始化CoreMotion #import <CoreMotion/CoreMotion.h> CMMotionManager *motionManager = [[CMMotionMan ...
- zookeeper snowflake 实战
目录 写在前面 1.1.1. 集群节点的命名服务 1.1.2. snowflake 的ID算法改造 SnowFlake算法的优点: SnowFlake算法的缺点: 写在最后 疯狂创客圈 亿级流量 高并 ...
- nginx-1.10.3 编译安装
1.系统环境 [root@crazy-acong ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@crazy-acong ~] ...
- ubuntun下安装Fiddler
对于分析网页或者写爬虫的时候经常需要用到抓包工具进行网页数据的抓包.在Windows下可以安装Fiddler来抓包.在ubuntun下不能直接安装Fiddler.需要先安装mono 1 首先安装mon ...
- JPA hibernate spring repository pgsql java 工程(二):sql文件导入数据,测试数据
使用jpa保存查询数据都很方便,除了在代码中加入数据外,可以使用sql进行导入.目前我只会一种方法,把数据集中在一个sql文件中. 而且数据在导入中常常具有先后关系,需要用串行的方式导入. 第一步:配 ...
- 深度问答之提取语料,导入了yml模块
根据目录下的yml文件循环创建同名文件夹,并从yml文件读取问答并给每个文件夹写入question和answer文件 #!/usr/bin/env python # coding:utf8 # aut ...