C++ Primer 5th Edition自学笔记(1)
好吧,第一次写东西...如何下手呢...(请无视)
--------------------------------------------------------------
Chapter 1. Getting Started
1.1 Write a Simple C++ Program
函数组成:返回类型(type)、函数名、参数列表、函数体
*函数体中的return返回类型要与函数的返回类型相匹配。
*类型Type:包含了数据元素的内容和对其可能的操作。
源文件(Source files):一般指程序文件,常见扩展名:.cc, .cxx, .cpp, .cp, .C
1.2 A First Look at Input/Output
IO函数由标准库(standard library)提供,使用前开头加上相关头文件,如<iostream.h>
标准输入:cin
标准输出:cout
*cerr用以输出警告和错误消息;clog用以输出程序执行的信息。
**表达式:会得到一个结果并与多个操作域和一个操作符相联系(an expression yields a result and is composed of one or more operands and (usually) an operator.)
*endl(a manipulator)用以结束当前行并对缓存器进行刷新。
std::cin std::cout 前缀std称为命名空间(namespace),可以保证不必要的名字冲突。
::操作符,表明cin函数和cout函数是用std命名空间里的。
Exercise Section 1.2
void Exericse_1_3()
{
std::cout << "Hello, World" << std::endl;
}
Exericse 1.3
void Exericse_1_4()
{
int num1 = , num2 = ;
std::cout << "Input two numbers: ";
std::cin >> num1 >> num2;
std::cout << "The multiplication of these two numbers is " << num1 * num2 << std::endl;
}
Exericse 1.4
1.3 A Word about Comments
注释(comment):注意随时更新!
方式:// 和 /*...*/
1.4 Flow of Control
1.4.1 The “while” Statement
while循环:先判断条件,为真执行循环体。
*混合操作符 +=: sum += val; //等价于 sum = sum + val;
递增操作 ++: ++val; //等价于 val = val + 1;
Exercise Section 1.4.1
void Exercise_1_9()
{
//Write a program that uses a while to sum the numbers from 50 to 100
int sum = , num = ;
while (num <= )
{
sum += num;
num ++;
}
std::cout << "The sum from 50 to 100 is " << sum << std::endl;
}
Exericse1.9
void Exercise_1_10()
{
int sum = , num = ;
while(num >= )
{
sum += num;
num--;
}
std::cout << "The sum from 10 to 1 is " << sum << std::endl;
}
Exericse1.10
1.4.2 The "for" Statement
for 循环包括两部分:a header and a body
header:初始化 ;条件;表达式
Exericse Section 1.4.2
void Exercise_1_13()
{
int sum = , num = ;
for (; num <= ; num++)
{
sum += num;
}
std::cout << "The sum from 1 to 10 is " << sum << std::endl;
}
Exericse 1.13
1.4.3 Reading an Unknown Number of Input
while( std::cin >> val )
{...}
当输入一个无效的命令时,cin返回一个错误值,while跳出循环,如ctrl + z(windows),ctrl + d(Unix or Mac OS X)
*错误类型:
1.语法错误(syntax error):如末尾未加分号,字符串未用双引号括起等
2.类型错误(type error):如将整数复制给了string类型的变量
3.声明错误(declaration error):变量必须先声明后使用。常犯的两种错误是缺少std命名空间和变量拼写错误。、
Exericse Section 1.4.3
void Exercise_1_16()
{
int sum = , num = ;
while (std::cin >> num)
{
sum += num;
}
std::cout << "The sum of numbers you input is " << sum << std::endl;
}
Exercise1.16
1.4.4 The if Statement
if (std::cin >> currVal) {...} 用以确保输入不为空
if() {...} 如果括号中的返回值为Ture,运行此块中的命令
else {...} 否则运行此块中的命令
*=操作符表示赋值,==操作符表示判断是否相等
*缩进和格式:关键是考虑它的可读性和可理解性,一旦选择一种风格,便坚持使用。
1.5 类 Introducing Classes
一种数据类型,对象的抽象
书店实例:Class Sales_item
实例化:Sales_item item;
成员: ISBN, SUM, revenue
行为: 函数isbn:取出一个实例
操作符>>,<<:读写实例
操作符=:将一个实例赋值给另一个
操作符+:将两个相同ISBN的实例相加,求出相应的SUM和revenue
操作符+=:给一个实例增加另一个
*头文件<>表示从系统中先搜索,""表示从项目中先搜索
Exercise Section 1.5.1
之后写好类Sales_item再作答
1.5.2 初探成员函数
成员函数被定义为类的一部分,有时也被成为类的方法(methods)
使用成员函数的方法是利用“.”操作符和"()"操作符 如 item1.isbn()
1.6 The Bookstore Program
关键在于对成员函数 成员变量的理解
C++ Primer 5th Edition自学笔记(1)的更多相关文章
- C++Primer 4th edition读书笔记-第二章
1 变量的定义用于为变量分配存储空间,还可以为变量指定初始值.在一个程序中,变量有且只有一个定义.声明用于向程序表明变量的名字和类型.定义也是声明:当定义变量时,我们声明了它的类型和名字.可以通过使用 ...
- 【读书笔记】C++ primer 5th 从入门到自闭(一)
这几天看了C++ primer 5th的一二章,有很多收获,但是有的地方因为翻译的问题也搞得理解起来颇为难受啊啊啊啊.尤其是const限定符,在C语言并没有这么多复杂的语法,在C++里面语法细节就多的 ...
- 【语音识别】Microsoft Speech Platform 自学笔记2 环境要求与安装过程
笔记人:又吹风 时 间:2012/12/16 主要内容:Microsoft Speech Platform的环境要求与安装过程. 上次也说过了,当前Microsoft Speech Platform最 ...
- C++Primer 5th 练习 12.19
这阵子真是太忙了, 连续做了四个课设. 当然这并不能作为好久没写博客的借口, 没写博客的主要原因只有一个: 懒. 最近又开始回顾C++的语法与特性(据说C++就是一门需要反复回顾的语言),以及学习C+ ...
- 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...
- 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...
- 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...
- python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...
- 《C++ Primer Plus》学习笔记1
C++ Primer Plus>学习笔记1 第二章.開始学习C++ 1.控制符endl 假设显示字符串时,在字符串中包括换行符,而不是在末尾加上endl,这样能够大大降低输入量:假设是要生成一个 ...
随机推荐
- 解决Bootstrap布局注册表单input标签前增加必填项*提示与input框不在同一行问题
注册表单部分代码如下: <form id="registForm" class="form-horizontal" action="${page ...
- Unity中Oculus分屏相机和普通相机一键切换
Unity中Oculus分屏相机和普通相机一键切换 一.OCulus 分屏相机介绍 在VR开发工程中,总会觉得OC分屏的处理太慢,严重浪费时间啊! 但是不使用有不好调试,来回切换相机就成为了一个必须. ...
- 格式化输出%s和%S的区别
使用s时,printf是针对单字节字符的字符串,而wprintf是针对宽字符的 使用S时,正好相反,printf针对宽字符 CString中的format与printf类似,在unicode字符集的工 ...
- PyQt4菜单栏
菜单栏是GUI程序最明显的组成部分.它由一组位于不同菜单中的命令组成.在控制台程序中,我们必须记住那些晦涩难懂的命令.但在GUI程序中,通过菜单栏我们将命令合理的放置在不同的菜单中来降低学习新应用程序 ...
- Maven 环境变量设置
下载Maven 官方下载地址:http://maven.apache.org/download.html 选择你所希望下载的版本,并保存到常用安装目录.这里以Maven 3.2.2 (Binary z ...
- C++ primer(十三)--类继承、构造函数成员初始化、虚函数、抽象基类
一.基类 从一个类派生出另一个类时,原始类称为基类,继承类称为派生类. 派生类对自身基类的private成员没有访问权限,对基类对象的protected成员没有访问权限,对派生类对象的(基类之 ...
- HTTP/2笔记之开篇
前言 本系列基于HTTP/2第17个草案文档,地址就是:https://tools.ietf.org/html/draft-ietf-httpbis-http2-17. HTTP/2规范已经通过发布批 ...
- MQTT的学习研究(九)基于HTTP GET MQTT 抓取消息服务端使用
官方参看文档: HTTP GET 接收主题请求协议和响应协议http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.c ...
- Suricata开源IDS安装与配置
开源IDS Suricata安装 Linux下的依赖问题的解决 在Debian,Ubuntu或者Linux Mint系列 $ sudo apt-get install wget build-essen ...
- 【BZOJ3518】点组计数 欧拉函数
[BZOJ3518]点组计数 Description 平面上摆放着一个n*m的点阵(下图所示是一个3*4的点阵).Curimit想知道有多少三点组(a,b,c)满足以a,b,c三点共线.这里a,b,c ...