- 博客(8)
- 收藏
- 关注
原创 定位new
3.析构逆序(构造时:基类(若未指定,即未在初始化列表中,则调用默认的)->成员对象(按声明顺序决定析构)->派生类,析构与此相反)(基类中的成员对象由基类调用,先于派生类成员)类型 变量名=new(变量空间来自于) 类型 (构造函数参数)2.若内存来自栈上创建的变量,则不需delete。1.必须手动调用析构函数(显式析构)
2025-07-24 16:41:12
89
原创 序列点规则
for中的也算,函数中的,不算?:函数调用前后,&&‖)标量只能修改一次。std::cout<<i++<<i++<<std::endl是不允许的。
2025-07-20 00:01:42
92
原创 找到结构体类型变量的偏移量
因此可以用int a=(int)&((vector3*)nullptr)->x。结构体类型的变量的首地址就是结构体类型的首地址。结构体类型指针存放的是该结构体的首地址。offsetof(结构体类型,变量名)
2025-07-19 23:58:05
91
原创 ->的重载
3.->必须是在非静态成员函数中被重载,若是在静态成员函数中被重载,由于静态成员函数不能用this所以这里不能用this,不能用this,那么前面左操作数就不能被this替代了,右操作数就不能被左操作数隐含了。2.链式调用:a->b->c,第一步,a->b,连锁调用直至ab类型相同时消去b,第二步b->c,连锁调用直至最后。有几个点1.连锁调用,->一直存在(用完一次刷新一次)直至与->后面的类型相同。->的重载一般用于访问外部函数时。
2025-07-19 23:04:38
228
原创 adl查找
两种特殊的情况:1.忽略using声明(using声明的函数只能通过常规查找来确定调用)(限定作用域查找也不行)指的是通过函数参数的类型来确定查找的命名空间(适用于类,枚举,类模板)2.隐藏友元函数(只能通过adl查找)(限定作用域查找也不行)顺序:常规查找(当前域->全局域)->adl查找。查找的是该类,基类和成员类的命名空间。
2025-07-17 17:47:13
118
原创 初始化成员列表与引用
众所周知,引用必须“引用”有且仅有一个变量,但有一种方法可以让它定义时不写引用对象,就是所谓的构造函数中的初始化成员列表:int & ia(int b){
2025-07-11 16:06:43
496
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅