C++面向对象基础知识点
1、变量的初始化
使用double值初始化int变量,会造成数据丢失。
如果列表初始化存在信息丢失的风险,编译器将报错。
2、编写完程序文本后,要将它存储为扩展名为cpp的文件,称为C++源文件,经过编译系统的编译、连接后,产生可执行文件。
3、①define声明符号常量:#define pi 3.1415
②const声明符号常量:

③符号常量在声明时一定要初始化,且在程序中不能改变其值
4、实型常量:
①实型常量默认为double型,如果后缀F/f则可使其称为float。
②指数形式:e/E均可;e前后必须都有数字,正负均可,E-3是错误地;e之后的数字必须为整数;e之后的数字不能为表达式;小数点前/后缺少数字的,也是合法浮点数。如:0.0,.0,0.;
5、字符常量:字符常量是单引号括起来的一个字符,如'a','?','$'
转义字符的斜杠:''
6、字符串常量简称字符串,是用一对双引号括起来的字符序列,如"fxy","yyds"。
字符串在末尾使用'\0'作为结束标记!
7、变量的存储类型:变量的存储类型决定了其存储方式
①register:存放在通用寄存器中
②extern:在所有函数和程序段中都可引用
③static:在内存中是以固定地址存放的,在整个程序运行期间都有效
④thread_local
⑤mutable
8、constrxpr:

在实际编程中,很难确定初始值是否是常量,为此引入constexpr关键字,以便编译器来验证变量的值是否是一个常量表达式。constexpr修饰的变量暗含了const属性,并且必须由常量表达式初始化。
eg: constexpr int size=get_size();
9、①二元运算符/二目运算符:有两个操作数
一元运算符/单目运算符:只有一个操作数
②当“/”用于两个整型数据相除时,其结果取商的整数部分。
③++i与i++的输出

④(ab)||(++c1):a==b的求值结果会影响到c的值,只有当ab的结果为false时,c的自增才会被执行【逻辑运算符||和&&具有短路性,走到某个地方能确定最终结果,就不往后走了】
10、位运算(&,|,^(异或,相同为0,不同为1),~(按位取反),<<(左移:向左移位,低位补0,高位舍弃,二元运算符),>>)
11、运算符的优先级与结合性

后置++/- - 的优先级比前置++/- -的优先级高
++(a++)写法是错误的,a++返回的是右值,但++要求是对左值进行操作
条件运算符的计算顺序是从右到左
减法的优先级比按位或高
与的优先级比或,异或都高
12、cout<<setw(5)<<setprecision(3)<<3.1415<<endl;
//设置域宽为5个字符,小数点后保留两位有效数字
13、switch语句:

14、while和do...while:while先判断表达式的值,表达式值为true时,再执行循环体;do...while语句先执行循环体,再判断表达式的值
15、string s="abcde";
for(auto &r:s)
r+=1;
//ans:bcdef
16、两种定义类型别名的方法
①typedef 已有类型名 新类型名表;
typedef long long ll;
②using 新类型名=已有类型名;
using Area=double;
17、auto和decltype

使用decltype时需要紧跟一个圆括号,圆括号内为一个表达式,声明的变量与该表达式类型一致。
eg:decltype(i) j=2;//表示j以2作为初始值,类型与i一致
18、约束访问
①常引用:约束对象用别名访问时为只读
②指针常量:
类型 *const 指针;//const写在指针变量名之前,表明约束指针变量本身
③指向常量的指针
- const写在关联类型之前或紧跟关联类型之后,标识约束所指对象访问
- 不能通过指针来改变所指对象的值,但指针本身可以改变,可以指向另外的对象
- 使用指向常量的指针,可以确保指针所指向的常量不被意外更改
④指向常量的指针常量
const 类型 *const 指针;//指针本身和所指对象的值在定义后都限制为只读
⑤void类型指针
- 任何类型的指针都可以赋值给void类型的指针变量
- 经过使用类型显式转换,通过void类型的指针便可访问任何类型的数据

19、类型转换
①自动类型转换

②强制类型转换

20、任何一个用于计算值的公式都可成为表达式,x=7+5是一个表达式
21、无符号数的计算

22、a=1,b=2,c=3
①a|b-c:
②a^b&-c ans=-1

23、break语句使程序从循环体和switch语句内跳出
continue语句结束本次循环,接着开始判断决定是否继续执行下一次循环
24、形参被调用时才分配存储空间
25、①如果需要对一个数四舍五入取整,可以通过floor(x+0.5)进行。头文件是#include
②ceil,该函数为向上取整函数,用来得到一个不小于一个数的最小整数。
26、不太理解

27、类的定义中不能有自身类对象:会造成循环声明

28、友元不是成员函数
29、返回引用 (&):直接操作原对象,避免拷贝,常用于修改对象自身(如=、+=、[])
30、逗号表达式按照从左向右的顺序计算每个子表达式的值。 逗号表达式的值等于最后一个子表达式的值
31、函数参数的默认值不允许为局部变量
32、
33、函数的默认参数规则:C++中,如果某个参数有默认值,那么它之后的所有参数都必须也有默认值。也就是说,默认值必须从右往左依次设置,不能出现左边有默认值而右边没有的情况。
34、




浙公网安备 33010602011771号