C/C++
文章平均质量分 92
Khaoden
be yourself
展开
-
makefile和CMakeLists/C++包管理器
大家可能会很奇怪,都什么年代了,还学makefile,cmake都有些过时了,为什么还要再学这个呢?我是这么看待这个问题的,cmake跨平台性还是很有有优势的,有着多年积累的底蕴,借助大模型可以很好的利用这个工具。而cmake的原理就是自动生成makefile,所以还是很值得学习makefile,了解历史的。makefile和CMakeLists。原创 2024-09-25 16:39:31 · 1109 阅读 · 0 评论 -
C++智能指针(2)/C++新特性
make函数比起直接调用new操作符,减少了源代码的重复,保证了异常安全,并且std::make_shared和std::allocate_shared还能生成更小更快的代码不能使用make函数的情形:要自定义deleter;希望使用大括号{}来初始化对象自身重载了new和delete操作符的类系统有内存隐患,分配的对象特别大,并且有指向此对象的std::weak_ptr实例存活时间远远长于对象的最后一个std::shared_ptr笔者水平有限,有问题可以和我交流。原创 2024-09-15 15:30:59 · 1133 阅读 · 0 评论 -
C++智能指针/C++新特性
多个裸指针指向同一块内存地址,即使被delete了,也有可能导致改内存空间不再被使用,从而引发内存泄漏。可以使用共享指针,当该地址的引用计数缩减为0的时候,就会重载该块地址见unique_ptr的deleterreturn;fclose(fp);可以不delete内存,而关闭文件。f为共享指针的别名,可以通过这样的操作使得b指针可以访问f指针的属性,注意b和f都必须是共享指针可以使用lamda表达式、普通函数、任意函数。原创 2024-09-14 22:04:32 · 1426 阅读 · 0 评论 -
C++基础/C++中的多态(关于虚...)
当父类指针或引用指向(绑定)子类对象,若虚基类中没有析构函数不是虚函数,那么只会调用父类的析构,不会调用子类的析构函数,可能会造成内存泄漏。我理解的多态是,在编写任何相关代码时,如果声明传入的对象是父类的,可以根据虚函数,传入子类从而调用子类重写的方法,达到极高的代码复用性。对象切片:当你将子类对象赋值给父类对象时,只有父类部分被复制,子类特有的部分被"切掉"了。这样写,就声明了c是Animal类型的,但是Cat构造法方法中多了一个属性,且重写了,会直接截取对象,使得c对象缺少。这个属性和重写后的方法·。原创 2024-08-28 17:22:45 · 1433 阅读 · 0 评论 -
C++基础/限定符及一些关键字在限定函数的作用
C++基础/限定符及一些关键字在限定函数的作用原创 2024-08-24 21:06:54 · 680 阅读 · 1 评论