
c++
文章平均质量分 54
爱自在
这个作者很懒,什么都没留下…
展开
-
C++_函数重载,函数重写,函数重定义的区别
一句话来说函数重载是在类内部,函数名一样,参数不一样。(只有返回值不同,不叫重载,因为如果不用返回值就不知道是哪一个了)函数重定义 是子类重新实现父类函数,名称必须一样,返回值和参数不作要求。又叫隐藏。函数重写 是子类重新实现父类虚函数(函数原型必须一样)。又叫覆盖。利用函数重写可以实现,父类访问子类函数的目的。(所以基类析构函数必须为虚函数)。...原创 2022-02-17 13:26:18 · 2820 阅读 · 2 评论 -
c++_基类析构函数为什么必须是虚函数
一句话来:防止子类内存泄漏如果基类的析构函数不是虚函数的话,可能造成子类析构函数没有调用,从而导致内存泄漏。什么情况下会出现呢?如下Base b = new Child;delete b;基类没有析构函数就啥事也没有~当然如果你不显式声明析构函数,或者说自己没有实现析构函数时,就没有问题。此时子类析构时将不调用父类析构函数。这个结论请参考文章:【拒绝主观!】C++继承中父类的构造函数和析构函数调用情况虚函数为什么能做到?有虚函数的基类,编译器会自动为其创建一个虚函数表(原创 2022-02-17 11:31:53 · 1374 阅读 · 4 评论