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)

导航