文档章节

【Essential C++ 学习笔记】第一章 基础编程 - 初识 C++

JokerHuang
 JokerHuang
发布于 2016/08/11 00:10
字数 1612
阅读 83
收藏 1

本章导航

初识 C++

运算符

控制语句

数组和向量

初识指针

文件的读写


内置数据类型

概述

C++ 提供了一组内置的数据类型,并且每一个基础数据类型都有与之相对应的系统关键字,用于指定该类型。

基础数据类型

数据类型关键字
整数int
布尔值bool
字符char
单精度浮点数float
双精度浮点数double

小结

  1. 虽然 C++ 为我们提供了基础数据类型,但是他们并非是我们编程任务的重心。
  2. 有其他关键字可以修饰部分基础数据类型关键字,如:long int、short int、unsigned int、long double、unsigned long int 等等。

函数

概述

函数是一块独立的程序代码序列,能够执行一些运算。它包含四个部分:返回值类型函数名参数列表函数体。分别介绍各自的作用及注意事项:

  1. 返回值类型:返回值通常用来表示运算结果。返回值类型就是描述这个返回值的数据类型。
  2. 函数名:函数名可以是任何字母、数字、下划线的组合,不能以数字开头;其次不能是关键字;再者需要有一定的语义,可以让人容易的了解这个函数的作用;最后最好不要过长。
  3. 参数列表:由两个小括号括住,置于函数名之后,可以是空的参数列表,如:main()。参数列表用来表示“函数执行时,调用者可以传递给函数的类型列表”,列表之中用逗号分隔各个类型。
  4. 函数体:函数体是有一组花括号括住的代码片段。

小例子

int setAge(int age) {
    // 这里是代码片段
    return 0;
}

return 关键字

return 是 C++ 中的关键字,紧接于 return 之后的表达式,也就是此函数的返回值。

小结

  1. 第一章里对函数的描述很简单,其实函数的水很深,比如:变长参数列表、声明等等,配合上类的使用更是变幻莫测,期待本书有更多篇幅的介绍。
  2. 基本的函数使用和其他语言类似。

初识类

C++ 事先定义好了一些基础数据类型,但他们并不能满足我们日常编程任务需要,这时候类的概念应运而生,class 机制赋予了我们增加程序内类型抽象化层次的能力。 百度百科描述类的定义为:用来描述对象,所谓的对象是指现实世界中的一切事物,那么类就可以看做是对相似事物的抽象。 所谓类,就是用户自定义的数据类型。

C++ 标准库

C++ 强大的功能来源于其丰富的类库及库函数资源。C++ 标准库的内容总共在 50 个标准头文件中定义。在 C++ 开发中,要尽可能地利用标准库完成。 C++ 的标准库都封装在 std 命名空间内,将在之后的篇章内做出对命名空间的介绍,这里只要了解即可。

class 的定义

一般来说分为两部分,分别写在不同的文件内,分别为:

  1. 头文件用来声明该 class 所提供的各种操作行为;
  2. 类的代码文件则包含了这些操作行为的实现内容。

class 的使用

使用 class,我们必须先在程序中包含 class 的头文件,头文件可以让程序知道 class 的定义。

类的声明

std::string userName;

这样一条语句便定义了一个名为 userName 的对象,它属于 std::string 类。这样的定义语句有一个特别的名称,称为声明语句。单写这么一条语句还不行,还必须让程序知道 std::string 类的定义,因此还需要在程序的开始包含对 std::string 的头文件:

#include <string>

对象的初始化

初始化方法

初始化方法分为两种赋值操作符初始化语法构造函数语法,一般来说将每个对象初始化是个好习惯。

赋值操作符初始化语法

int age = 0;
int height = 0;
int length = 0, weight = 0;

上面三行可见,在单一声明语句中,定义多个相同类型对象可以使用逗号分隔。

构造函数语法

使用赋值操作符进行初始化沿袭自 C 语言,但是如果对象需要多个初值,这种方式就没办法完成了,以标准库中的复数类为例,它的初始化需要两个初值,一为实部,二为虚部。于是便引入了构造函数语法

#include <complex>
std::complex<double> purei(0, 7);

这里使用了模板类,以后再做解释,只是想表示下构造函数语法的使用方式。


引申内容

语句 ( statement )

std::cout << "Please enter your first name:";

上面这行代码就是 C++ 所谓的语句,语句是 C++ 程序的最小独立单元,以分号作为结束。

转义字符

常用的转义字符

| 转义字符 | 含义 | | :-----: | :--: | | \r | 回车 carriage return | | \n | 换行 newline | | \t | 制表符 tab | | \0 | null | | \' | 单引号 single quote | | \" | 双引号 double quote | | \\ | 反斜线 backslash | 值得注意的是 Unix 系统每行的结束是换行符 \n,Mac 系统每行的结束是回车符 \r,Windows 系统每行的结束是换行回车 \n\r。直接导致一个问题是 Unix/Mac 文件在 Windows 中打开,显示是在一行上的,而 Windows 文件在 Unix/Mac 下打开每行多了一个^M符号!


心得体会

第一次这样写学习笔记,有点不太适应,内容也有点乱糟糟,希望通过学习 Essential C++ 这本书,一来让我对 C++ 有个更好的入门体验,二来也提高下自己的文笔。各位大神如果发现有不对的地方请指正,大家一起学习。如果要转请注明出处来自JokerHuang,不过我觉得也没人会转...

© 著作权归作者所有

共有 人打赏支持
JokerHuang
粉丝 3
博文 6
码字总数 7272
作品 0
苏州
高级程序员
私信 提问
C++零基础教程之类和对象初识

C++ 类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理...

这个人很懒什么都没留下
09/03
0
0
4-C++远征之起航篇-学习笔记

c++教程起航篇 我们会讲C++那些事,C++与C语言的关系。 C++诞生于贝尔实验室。 C++之父: 本贾尼·斯特劳斯特卢普 C++社区排行榜 最新排行,c++排名第三,Python排名第四 C++语言的应用领域:...

天涯明月笙
07/20
0
0
如何自学成为C/C++程序员大牛

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
05/11
0
0
如何成为一名合格的 C/C++ 开发者?

在大多数开发或者准开发人员的认识中,C/C++ 是一门非常难的编程语言,很多人知道它的强大,但因为认为“难”造成的恐惧让很多人放弃。我从学生时代开始接触 C/C++,工作以后先后担任过 C++ ...

张小方
10/31
0
0
C语言/C++永远都不会过时的编程语言

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ui2code中的深度学习+传统算法应用

背景 在之前的文章中,我们已经提到过团队在UI自动化这方面的尝试,我们的目标是实现基于 单一图片到代码 的转换,在这个过程不可避免会遇到一个问题,就是为了从单一图片中提取出足够的有意...

阿里云官方博客
28分钟前
2
0
1-2 【包子mysql系列】, 对mysql的innoDB加锁分析

innoDB的事务,是基于锁来实现的,用到事务不自然就会用到锁,而如果对锁理解的不通透,很容易造成线上问题。 数据库加锁的分析,和事务的引擎,隔离级别,索引,主键索引都有关系, 如果去考...

爱吃大肉包
41分钟前
0
0
插入排序

/** * 插入排序 * @Title: insert * @Description: TODO(这里用一句话描述这个方法的作用) * @param 参数 * @return void 返回类型 * @throws */ static void insert(int[] arr ){ for(int i......

yzzzzzzzz
44分钟前
2
0
python Kmeans算法解析

一. 概述 首先需要先介绍一下无监督学习,所谓无监督学习,就是训练样本中的标记信息是位置的,目标是通过对无标记训练样本的学习来揭示数据的内在性质以及规律。通俗得说,就是根据数据的一...

终日而思一
44分钟前
2
0
Nginx+Keepalived实现站点高可用

Nginx+Keepalived实现站点高可用

吴伟祥
45分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部