- 博客(4)
- 收藏
- 关注
原创 关于枚举的初始化的一部分知识点
②在枚举类型添加枚举成员时,int(或其他算数类型)不能用来初始化一个枚举成员,只能用相同枚举类型的枚举成员来初始化另一个枚举成员。①不限定作用域的枚举成员能转为int,而限定的不行。在枚举类型声明定义之外的部分,
2024-04-26 16:54:58
126
1
原创 类对象的关于动态内存的构造函数和析构函数
有两种情况,第一种是一个类对象被new出来的(new类对象),第二种情况是类对象是在栈中,但类对象的成员变量是new出来的(new成员变量),第三种情况是声明类对象的指针(或者初始化了)。第二种情况下,①程序结束时类对象最后会调用构造函数和析构函数,因为类对象处于栈中。②如果析构函数没有delete该动态内存的成员变量,则该成员变量的内存不会被释放。在第一种情况下,①如果程序结束前也没有使用delete类对象,则不会自动调用析构函数,处于动态内存的类对象最后可能会被操作系统回收。
2024-04-26 01:47:03
231
2
原创 模板实参和参数推断
这里用的是T,无法保持左值/右值性值,此时不管j是左值还是右值,T都是int,并且是拷贝的。②在第一层与第二层之间,j作为左值实参传给T2,由于是T&& T2,所以模板参数T是int&,T2是左值,此时第二层的forward<T>(T2)=forward<int&>(T2),由于引用折叠,这里得到的是int&作为实参传给g函数,与g函数的形参int&匹配,实现了正确参数类型传递,同时v2引用了T2,T2引用了j。规律3:forward<T>可以保留参数的左值/右值性值。
2024-04-19 19:59:19
275
原创 拷贝控制的部分知识点
三五法则:类需要析构函数的时候,同样也需要拷贝构造函数和拷贝赋值函数。类需要拷贝构造函数和拷贝赋值函数的时候,不一定需要析构函数。如果一个类需要拷贝构造函数,肯定也需要拷贝赋值函数(反之亦然)。此时如果使用了生成拷贝构造函数时,就会简单的复制了类的指针,此时两个类对象的指针就会指向同一个堆中的内存。1.需要析构的时候例子:比如类的成员有指向动态内存的内置指针,生成析构函数对指针释放只是简单的销毁,不会delete对应的内存。2.如果一个类需要拷贝构造函数,肯定也需要拷贝赋值函数(反之亦然)。
2024-03-31 00:01:53
150
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人