2022年9月2日

【C++】智能指针

摘要: 这篇讲得很好 https://blog.csdn.net/sjp11/article/details/123899141?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166201751616781790748003%2522%252 阅读全文

posted @ 2022-09-02 09:14 甲鱼写代码 阅读(26) 评论(0) 推荐(0)

2022年9月1日

【IO复用】epoll和select以及poll的区别

摘要: select原理 说在前面,整个select在内核空间中的工作事实上非常有趣,中间还会穿插一些可抢占点,检测当前是否有进程可以调度,增加系统的实时性 初始化阶段: FD_set,把要监听的fd都添加到监听集合中去 监听/唤醒 阶段: 调用select() 通过系统调用,会把监听集合中所有fd都cop 阅读全文

posted @ 2022-09-01 11:55 甲鱼写代码 阅读(214) 评论(0) 推荐(0)

2022年8月31日

【C++】引用与指针的区别

摘要: 安全性 首先引用要比指针要安全,因为引用不能更改绑定,但是指针可以更改指向,此外指针可以有多级,但是引用一般只有一级。在使用指针的时候,我们往往需要使用断言,判断指针是不是空指针,访问空指针是会造成程序crash的。 此外类中有引用成员,当不同对象的引用成员绑定同一个类外变量,在析构的时候是不会发生 阅读全文

posted @ 2022-08-31 17:12 甲鱼写代码 阅读(30) 评论(0) 推荐(0)

2022年8月30日

【C++】【复杂结构拷贝问题】深拷贝与引用类型成员以及常量成员

摘要: 为什么要有深拷贝? 当类的成员中有引用类型,那么拷贝的时候,比如 1 class A{ 2 public: 3 int * addr; 4 } 5 A a; 6 A a1(a); 7 //此时 a和a1中的addr成员,都将同时引用同一块内存,那么当析构的时候,就会出现free after free 阅读全文

posted @ 2022-08-30 15:32 甲鱼写代码 阅读(150) 评论(0) 推荐(0)

【C++】拷贝构造函数与引用传递参数

摘要: 问题:调用拷贝构造的时候,能不能用值传递参数? 先说结论:调用拷贝构造的时候,不能用值传递参数,应该用引用传递,否则会导致无限调用拷贝构造,从而栈溢出 原理:值传递的时候,会用实参来构造形参,那么构造形参的过程中又会call拷贝构造,以此内推,无限循环 拷贝构造函数被调用的三种时机: 用类的一个对象 阅读全文

posted @ 2022-08-30 12:01 甲鱼写代码 阅读(293) 评论(0) 推荐(0)

【C++】多态与虚函数

摘要: 多态和虚函数 先说说重载,重载要求函数名相同,返回值(返回值不同不构成重载)和形参不用相同,我们常用的重载是一种静态的多态,为什么C语言不能够重载呢?这与c语言的编译器有关,体现在符号表中,c语言的函数在编译时不会像C++那样把参数也添加到对应的符号表里 而多态当中,派生类中对于基类虚函数的重写,要 阅读全文

posted @ 2022-08-30 09:34 甲鱼写代码 阅读(93) 评论(0) 推荐(0)

2022年8月29日

【C++】delete

摘要: delete是根据指针的类型来调用析构的。当delete派生类对象填充的派生类指针,那么delete这个指针,先调用派生类析构,再调用基类析构。当多态环境下,delete指向派生类对象的基类指针,则出现只调用基类析构,而不调用派生类析构,从而导致内存泄漏。这里产生的问题是,调用的基类析构能不能删除派 阅读全文

posted @ 2022-08-29 23:35 甲鱼写代码 阅读(245) 评论(2) 推荐(0)

导航