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:
image
在实际编程中,很难确定初始值是否是常量,为此引入constexpr关键字,以便编译器来验证变量的值是否是一个常量表达式。constexpr修饰的变量暗含了const属性,并且必须由常量表达式初始化。

eg: constexpr int size=get_size();

9、①二元运算符/二目运算符:有两个操作数

一元运算符/单目运算符:只有一个操作数

②当“/”用于两个整型数据相除时,其结果取商的整数部分。

③++i与i++的输出
image

(ab)||(++c1):a==b的求值结果会影响到c的值,只有当ab的结果为false时,c的自增才会被执行【逻辑运算符||和&&具有短路性,走到某个地方能确定最终结果,就不往后走了】

10、位运算(&,|,^(异或,相同为0,不同为1),~(按位取反),<<(左移:向左移位,低位补0,高位舍弃,二元运算符),>>)

11、运算符的优先级与结合性
image
后置++/- - 的优先级比前置++/- -的优先级高

++(a++)写法是错误的,a++返回的是右值,但++要求是对左值进行操作

条件运算符的计算顺序是从右到左

减法的优先级比按位或高

与的优先级比或,异或都高

12、cout<<setw(5)<<setprecision(3)<<3.1415<<endl;

//设置域宽为5个字符,小数点后保留两位有效数字

13、switch语句:
image
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
image

使用decltype时需要紧跟一个圆括号,圆括号内为一个表达式,声明的变量与该表达式类型一致。

eg:decltype(i) j=2;//表示j以2作为初始值,类型与i一致

18、约束访问

①常引用:约束对象用别名访问时为只读

②指针常量:

类型 *const 指针;//const写在指针变量名之前,表明约束指针变量本身

③指向常量的指针

  • const写在关联类型之前或紧跟关联类型之后,标识约束所指对象访问
  • 不能通过指针来改变所指对象的值,但指针本身可以改变,可以指向另外的对象
  • 使用指向常量的指针,可以确保指针所指向的常量不被意外更改
    ④指向常量的指针常量

const 类型 *const 指针;//指针本身和所指对象的值在定义后都限制为只读

⑤void类型指针

  • 任何类型的指针都可以赋值给void类型的指针变量
  • 经过使用类型显式转换,通过void类型的指针便可访问任何类型的数据
    image
    19、类型转换

①自动类型转换
image
②强制类型转换
image
20、任何一个用于计算值的公式都可成为表达式,x=7+5是一个表达式

21、无符号数的计算
image
22、a=1,b=2,c=3

①a|b-c:

②a^b&-c ans=-1
image
23、break语句使程序从循环体和switch语句内跳出

continue语句结束本次循环,接着开始判断决定是否继续执行下一次循环

24、形参被调用时才分配存储空间

25、①如果需要对一个数四舍五入取整,可以通过floor(x+0.5)进行。头文件是#include

②ceil,该函数为向上取整函数,用来得到一个不小于一个数的最小整数。

26、不太理解
image
27、类的定义中不能有自身类对象:会造成循环声明
image
28、友元不是成员函数

29、返回引用 (&):直接操作原对象,避免拷贝,常用于修改对象自身(如=+=[]

30、逗号表达式按照从左向右的顺序计算每个子表达式的值。 逗号表达式的值等于最后一个子表达式的值

31、函数参数的默认值不允许为局部变量

32、image
33、函数的默认参数规则:C++中,如果某个参数有默认值,那么它之后的所有参数都必须也有默认值。也就是说,默认值必须从右往左依次设置,不能出现左边有默认值而右边没有的情况。

34、image
image
image
image

posted @ 2025-04-11 15:09  风归去  阅读(44)  评论(0)    收藏  举报