- 博客(7)
- 收藏
- 关注
原创 C++面试题自我整理(持续更新......)(八股文版本)
default是C++11的新特型,主要用于在类的声明中显式指定编译器生成默认的特殊成员函数实现。
2024-07-22 01:49:46
1032
原创 C++智能指针的工厂函数
结果发现析构函数没有执行,就会造成内存泄漏,不会构造,在windows和gcc执行的结果不同,就是说在不同的编译器,代码执行的顺序是不一样的,先去执行get_number函数,不会进行new的操作。从该过程中,我们发现 make_shared 函数会比 shared_ptr 构造函数创建方式减少一次动态内存的申请和释放,进而提升了 shared_ptr 的构建效率。时,你只需提供要动态分配的对象的类型和构造函数参数,函数会返回一个包装了这个动态分配对象的。,这个和 make_unique 是有区别的。
2024-07-21 23:13:54
380
原创 C++智能指针(半自动的,需要手动创建) --------动态内存管理工具
unique_ptr 可用于管理 new 出来的动态对象,也可以管理其他非new需要手动关闭的资源。例如:文件对象。由于 unique_ptr 默认使用 delete、delete[] 来释放被管理的资源。所以,当管理的对象不能通过 delete、delete[] 来释放时,就需要自定义删除器public:Person()cout
2024-07-21 22:53:59
562
原创 C++ 函数模板和类模板
编译器或有两次编译,函数模板声明的时候编译一次,程序中函数调用此情况会再次编译一次。函数模板通过具体的使用情况生成模板函数,编译器在编译的时候会自动帮我们生成模板函数。3.如果函数模板可以产生一个更好的匹配,那么选择模板。1.函数模板可以像普通函数那样被重载。类模板在类内实现,声明和实现放在一起。1.函数模板不允许自动类型转换。1.编译器(编译原理)工作流程。类模板在类外实现,实现放在外面。2.普通函数能够进行类型转换。1.3 C++编译器模板机制。2.C++优先考虑普通函数。2.函数模板实现原理。
2024-07-21 19:04:52
329
原创 C++中的虚函数机制
C++默认的静态绑定,在查找和关联的过程中是在编译期间完成的,普通函数,重载函数和成员函数都是静态绑定;//普通函数//重载函数//成员函数//都是静态绑定,能够提高程序的性能func(100);
2024-07-21 03:04:37
1076
原创 C++完美转发的实现
右值引用:可以这么理解,右值是即将废弃的对象,右值引用的目的就是为了给这些废弃的对续命,此时,无论左值,右值对象都变成了具名对象,变成了左值对象了,所以才出现这样的结果。我们希望参数是“原封不动”的性质,所以上面这些方式都不能实现,那我们如何去解决这个问题呢,C++支持模板技术,对于函数模板,可以实现类型的自动推导,加上引用折叠的技术。引用折叠:T&& 多种类型做合在一起的时候,通过编译器的一组规则确定最终的引用。结果还是不对,原因是什么呢。
2024-07-20 13:05:34
305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人