【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 ...
随机推荐
- List和Set排序的实现
List.Set.Map的区别 List和Set继承了Collection接口. List以特定索引来存取元素,可以有重复元素.Set不能存放重复元素(用对象的equals()方法来区分元素是否重复) ...
- org.apache.poi3.1.7 Excle并发批量导入导出
org.apache.poi3.1.7 升级,需要修改设置方式: 1.org.apache.poi3.1.4 的设置单元格: XSSFCellStyle cellStyle = wb.createCe ...
- Nginx教程
Nginx教程 1.背景 介绍 Nginx是一个高性能的HTTP服务器,以及反向代理服务器 组成 Ngnix有内核和模块组成.微结构的内核根据配置文件将一个请求映射到一个location块中,该loc ...
- 16.Django提交表单
Django表单提交一共有三种方式: 1.不使用Django组件进行提交 2.使用django.forms.Form(所有表单类的父类)进行提交 3.使用django.forms.ModelForm( ...
- linux c编程:线程退出
在线程创建的时候pthread_exit都是调用的固定参数,我们先来看下如果用自动变量作为pthread_exit的参数时出现的问题 typedef struct foo{ int a; int b; ...
- 只需两步删除 node_modules
peng@PENG-PC /E/_My_File_____/home/learn/web_qianduan/mithril-demo/demo2/mithril -demo $ npm install ...
- oracle游标用法
-- 声明游标:CURSOR cursor_name IS select_statement --For 循环游标 --(1)定义游标 --(2)定义游标变量 --(3)使用for循环来使用这个游标 ...
- 【leetcode刷题笔记】Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...
- mysql表数据压缩
记得一次面试中,面试官问我是否知道表的压缩,这个时候我才知道mysql有个表压缩这么个功能,今天试用下看看表的压缩率怎么样. 这里分两个部分说明,第一部分:官方文档说明:第二部分:具体实例测试. [第 ...
- P2455 [SDOI2006]线性方程组
P2455 [SDOI2006]线性方程组 真\(\cdot\)高斯消元模板题 由于各种hack数据被造出来~码量突增~,其实也就多了二三十行 将每行系数消到最多有一个非0数 特殊情况: 在过程同时 ...