C++基础-简要笔记

  1. C++的面向对象四大特性:

a. 封装 b. 抽象 c. 继承 d. 多态

  1. C++基本语法:

C++可以定义为对象的集合,对象通过调用彼此的方法进行交互。

  1. 对象是类的实例。
  2. 数据类型:七种基本数据类型:

a. 布尔型 bool
b. 字符型 char
c. 整型 int
d. 浮点型 float
e. 双浮点型 double
f. 无类型 void
g. 宽字符型 wchar_t (typedef short int wchar_t)

  1. 变量声明:

可以在多个文件中多次声明变量(使用extern可以在任何地方声明变量),但只能在一个文件中定义同一个变量。

  1. 变量作用域:

a. 函数或代码快内部:局部变量
b. 函数参数:形式参数
c. 所有函数外部:全局变量

  1. 常量:

固定值,定义后不再改变。

  1. 整数常量:

十进制/八进制(前缀基数0)/十六进制(前缀基数0x/0X)

  1. 定义常量的方式:

a. #define
b. 使用const

  1. 把常量定义为大写字母。
  2. 数据修饰符类型:signed/unsigned/long/short
  3. 类型限定符:

a. const: 常量在程序执行期间不能被改变;
b. volatile:编译器不优化volatile声明的变量,让程序可以直接从内存中读取变量。
c. Restrict ;

  1. 存储类定义函数/变量的范围和生命周期:

a. auto (C++17开始,auto不再是存储类说明符)
b. register (C++17开始,register被弃用)
c. static : i. 修饰局部变量,可以在函数调用之间保持局部变量的值; ii. 修饰全部变量,使变量的作用域限制在声明它的文件内; iii. 修饰类数据成员,导致仅有一个该成员的副本被类的所有对象共享
d. extern : i. 提供全局变量的引用,全局变量对所有文件都是可见的; ii. 使用"extern"时,对于无法初始化的变量,会把变量名指向之前定义过的存储位置; iii. extern是用来在另一个文件中声明一个全局变量或函数;
e. mutable : i. 仅适用于类的对象。允许对象的成员替代常量。mutable成员可以通过const成员函数修改;
f. thread_local : i. 其声明的变量,在创建线程时创建,在销毁线程时销毁; ii. 仅仅用于数据声明和定义,不能用于函数声明和定义。

  1. C++数组:固定大小/相同类型元素的集合。

a. 连续内存,索引访问;
b. 声明数组,需指定元素类型与数量;
c. 初始化数组;
d. 多维数组;
e. 指向数组的指针:数组名是指向数组第一个元素的常量指针;
f. 传递数组给函数: i. 数组类型自动转换为指针类型,因而实际传的是地址;ii. 对于函数而言,数组的长度无关紧要,因为C++不会对形式参数执行边界检查;
g. 从函数返回数组:i. C++不允许返回完整的数组,但允许返回指向数组的指针(不带索引的数组名可以表示一个指向数组的指针); ii. 如果想从函数返回一个数组,则必须声明一个返回指针的函数; iii. C++不支持在函数外返回局部变量的地址,除非定义局部变量为static变量;

  1. C++字符串:使用字符’\0’终止的一维字符数组。

a. strcpy() b. strcat() c.strlen() d. strcmp() e. strchr() f. strstr()

  1. C++中的String类
#include <string>
  1. C++指针

a. 所有指针的值的实际数据类型,都是代表一个内存地址的长的十六进制数。
b. NULL指针,空指针,值为0,表明该指针不指向一个可访问的内存位置,如需检查空指针,使用if();
c. 指针的算术运算:++/–/+/-;
d. 变量指针可以递增,数组不能递增,因为数组是一个常量指针;
e. 指针的比较:==/</>;
f. 指针数组:数组的每个元素都是指针;
g. 指向指针的指针:多级间接寻址 h. 传递指针给函数: i. 只需声明函数参数为指针类型; ii. 能接受指针作为参数的函数,也能接受数组作为参数; iii. 从函数返回指针:和从函数返回数组类似,声明一个返回指针的函数即可。

  1. 引用:

a. 引用变量是一个别名,它是某个已经存在变量的另一个名字;
b. 引用与指针的对比: i. 不存在空引用,引用必须连接到一个合法的内存;指针可以为空指针; ii. 一旦引用被初始化为一个对象,就不能指向另一个对象。指针可以在任何时候指向其他对象; iii. 引用必须在创建时初始化;指针可以在任何时间初始化;
c. 把引用作为返回值: i. 当返回引用时,注意被引用的对象不能超出作用域; ii. 返回一个对局部变量的引用是不合法的; iii. 可以返回一个对静态变量(static修饰)的引用。

  1. C++标准库没有提供日期类型,继承C语言用于日期和时间操作的结构和函数,
 #include <ctime>
  1. C++基本的输入输出
	#include <iostream>
	#include <fstream>

cout/cin/cerr/clog

  1. C++数据结构

a. 用户自定义的可用的数据类型,允许存储不同类型的数据项;
b. struct type_name{} object_name;
c. 访问结构成员,成员访问运算符(.);
d. 结构作为函数参数;
e. 指向结构的指针,使用指向结构的指针访问结构的成员,必须使用->运算符;
f. typedef

更多学习资料,请关注下面的公众号:不定期分享

深度学习网络总结
机器学习算法及其应用场景
算法与数据结构(leetcode 题解)
cuda编程与并行优化
其他读书分享如:《战国策》,《智囊全集》
宇宙常识科普与星座辨别等等
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值