![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
进击的卡特琳娜
菜,就多练
展开
-
C++智能指针详解之weak_ptr
weak_ptr用于判断shared_ptr关联的资源是否已经被释放。原创 2024-01-07 08:31:20 · 482 阅读 · 0 评论 -
C++智能指针详解之shared_ptr
有时,多个对象或代码段需要同一指针的副本,unique_ptr无法复制,不能用于此类情况。std::shared_ptr是一个可复制的支持共享所有权的智能指针。当有多个shared_ptr实例引用同一资源,它们如何知道何时释放资源?这就需要【引用计数】来解决。原创 2024-01-06 08:35:14 · 542 阅读 · 0 评论 -
C++智能指针详解之unique_ptr
智能指针可以帮助管理动态分配的内存,是避免内存泄漏的有用技术。智能指针可用于管理在函数作用域内(或作为类的数据成员)动态分配的资源,当智能指针离开作用域或者被重置时,会自动释放所占用的资源。智能指针有多种类型。最简单的智能指针类型std::unique_ptr对资源有唯一的所有权,稍微高级点的智能指针允许共享所有权,即多个智能指针指向同一个资源,当这样的智能指针离开作用域或者被重置时,仅当它是指向该资源的最后一个智能指针时,才会释放指向的资源,标准库提供了std::shared_ptr,它支持共享所有权。原创 2024-01-05 16:36:44 · 1248 阅读 · 0 评论 -
C++的源代码是怎么编译成可执行文件的?
①预处理:由预编译器负责,处理include头文件,展开define宏定义,处理条件预编译指令#if#ifdef,删除注释、添加行号。最终.c文件变为.i文件;④链接:通过链接器将多个目标文件以及依赖的库文件链接起来,生成可执行文件。②编译:由编译器负责,检测语法错误。最终.i文件变为.s汇编文件;③汇编:汇编器将汇编语言转换为二进制代码,生成目标文件.o;分为4个步骤:预处理,编译,汇编,链接。原创 2024-01-02 15:00:38 · 582 阅读 · 0 评论 -
C++|引用-值传递、引用传递和const引用传递
通过const引用传递,可以做到二者兼顾:即可以不生成副本(引用传递的特点),又可以不改变原始变量的值(值传递的特点)。另一种是引用传递(pass-by-reference),传递的是指向原始对象的指针,即对象的地址,因此计算机无需生成副本,在函数体内修改引用传递参数,也会改变原始实参。默认的参数传递语义是值传递(pass-by-value):函数接收其参数的副本,修改这些参数后,原始实参将保持不变。C++程序员通常不使用独立的引用变量或引用数据成员,引用最常见的用途是用于函数的参数。原创 2023-12-07 12:36:21 · 119 阅读 · 0 评论