文档章节

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

JokerHuang
 JokerHuang
发布于 2016/08/11 00:10
字数 1612
阅读 75
收藏 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++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Window...

悟空_b201
05/30
0
0
C语言/C++永远都不会过时的编程语言

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

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

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部