c++学习

c++的主要特性 封装继承多态抽象

标准库:
核心语言 包括构件块 变量 数据类型和常量
c++标准库
stl模板库 提供大量的方法 用于操作数据结构

为了保证c++的便携性 使代码在所有平台都能够编译 所有厂商都是用ansi标准

适用领域:数学和研究 用于编写驱动程序和其他实时性操作的软件 winos系统底层是使用c++编写的。

标准化:
2015年 c++第四个标准文件

c++文件和流环境
编译器和文本编辑器。

编译c++ 使用g++.exe工具

x=y;
y=y+1;
add(x,y)

分号是语句的结束 表明一个逻辑实体的结束

c++变量类型
该范围内的值都会存储在内存中 运算符可以应用于变量上

变量由字母数字和下划线字符组成

bool 存储值true或者false
char 一个八位字节 这是一个整数类型
int 机械最小的自然数
float 单精度 1 8 23 位小数 双精度 52位小数
void 类型缺失
wchar_t 宽字符类型
其他的 枚举指针 引用类 数据结构

c++中变量定义
type valiable_list
int i, j, k;
char c, ch;
float f, salary;
double d;

函数调用:

左值和右值
int g=20;
10=20; 报错

c++变量作用域
局部变量
形式参数
全局变量

在一个函数声名 叫做局部变量

c++常量 常量是固定值 在执行期间不可以改变 这固定的值叫做字面量 。
常量可以是任意类型。
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

字符常量的方法
预处理器
使用const关键词

define identifier value

限定符
const 程序在执行期间不能改变
volatile 修饰符告诉不需要声名变量 直接从内存读取
restrict 指针是唯一的访问方式 c99

c++存储
存储类型定义了变量可见性和生命周期。
auto
register
static
extern
mutable
thread_local (C++11)

//c11开始 register被弃用

extern存储全局变量的引用 随处可见 使用extern时 对于无法初始化的变量 会指向之前存储的位置

每一个变量都有自己的变量副本

运算符
算术
关系
逻辑
位运算符
赋值运算
杂项运算

运算符 描述 实例
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。

| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。

^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。

~ 二进制补码运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0。

<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。

循环:
无限循环
for(;;)常用这个来表示

函数
值引用 把实际的值传给函数的形式参数 内存释放 值消失
指针引用 把地址传给参数
引用调用 修改形式参数会影响实际参数

默认时值引用。未指定会使用默认值。

c++数组
指定元素的类型和数量
数组时很重要的 下面列出了一些数组相关的重要概念。

c++字符串
c风格字符串
c++引入的string类类型

c++中的string类
c++标准库提供了string类型 另外还增加了其他更多的功能。

c++指针
如果没有指针 没有动态内存分配 这是无法执行的。 所以想要成为一个优秀的程序员。 学习指针时很有必要的。
表示内存地址的长的十六进制数。

c++引用
他是一个已经存在变量的另一个名字。一旦把初始值为某个变量,就可以引用该名称或者变量名称。
不存在空引用
一旦引用被初始化为一个对象 就不能被指向另一个对象。 指针可以在任何时候指向另一个对象。
引用必须在创建时初始化 指针可以在任何时候被初始化。

标准输出流:
使用cerr显示错误信息 使用其他信息用clog显示

c++数据结构
数组运行定义可存储相同类型数据的变量 但是结构中c++中另一用户自定义的额可用数数据项。
title author subject bookId 标题作者类目书的Id

结构指针:
可以定义指定结构的指针 方式和其他的类似。 如下所示:
struct Books *struct_pointer;
struct_pointer = &Book1;struct_pointer = &Book1;

使用简化版的数据结构创建书籍
可以使用Books来定义Books类型的变量 而不是使用struct 实例。

继承:允许我们依据另一个类来定义一个类。 使得维护和创造一个应用程序变得容易。

当创建一个新的类时,并不需要编写新的数据成员和成员函数,只需要指定新建的类继承一个以有的类成员。 这个以有的类成为基本或者派生类。

继承代表了Is a的关系。

多态:
意味着同一个对象 不同的函数类型执行不同的函数。

数据抽象:

数据接口:
描述了类的行为和功能 不需要完成类的特定实现。
c++接口使用抽象类来实现,抽象类与数据抽象互补混淆,数据抽象是一个把细节和先关数据分开的概念。
如果类中至少由一个函数被声明为虚函数 那么这个类就是抽象类,虚拟函数通过0来指定。

c++动态内存
栈内存 在函数内部声名的所有变量都将占用栈内存
堆内存 这是程序未使用的内存 在程序运行时可以动态分配内存

c++命名空间

C++预处理器的类型
define if inclide if else line

c++信号处理
提供了signal函数来捕获异常
信号 描述
SIGABRT 程序的异常终止,如调用 abort。
SIGFPE 错误的算术运算,比如除以零或导致溢出的操作。
SIGILL 检测非法指令。
SIGINT 接收到交互注意信号。
SIGSEGV 非法访问内存。
SIGTERM 发送到程序的终止请求

c++多线程
运行几个以上的程序 两种类型的多任务处理 基于进程和线程。
基于进程 多任务处理。
基于线程 用一个程序并发执行。

原文地址:https://www.cnblogs.com/xiaocongcong888/p/9799103.html