C++
_Index_
这个作者很懒,什么都没留下…
展开
-
C++虚析构函数
为防止内存泄露,定义一个基类的指针p,在delete p时,如果基类的析构函数是虚函数,这时会看指针p所指向的对象是什么类型的,如调用构造函数时,先调用基类构造函数,再调用派生类构造函数,调用析构函数时,先调用派生类再调用基类析构函数。这种需要等到编译器运行时才能确定对象的类型叫动态联编,若基类中没有声明虚析构函数,则将根据p的指针类型调用,而不是p所指向的对象 ...原创 2020-07-16 10:02:57 · 127 阅读 · 1 评论 -
C++复制构造函数
什么是复制构造函数? 复制构造函数形如: 假设类为StringBad,其相应的构造函数为 StringBad(const StringBad &); 当使用一个对象初始化另一个对象的时候,编译器将自动生成上述函数 每当程序生成对象副本时,编译器都将使用复制构造函数 如一个函数为call(StringBad sb)sb为其副本,创建sb时就调用了该函数,这也就会造成如果某个类型中有 字符串时候,其副本因为浅拷贝的问题会指向与原类相同的地址,造成析构时,重复释放该地址内存。 假设m.原创 2020-07-12 21:54:43 · 68 阅读 · 0 评论