自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 C++菱形继承是什么?如何解决菱形继承带来的问题?

菱形继承是多继承中的特殊情形,当两个派生类继承同一基类,而另一个类又同时继承这两个派生类时,就会形成菱形结构。这会引发同名属性重复继承的问题,如羊驼类同时继承羊类和驼类的age属性。解决方法是通过虚继承(virtual关键字),使派生类共享基类的同一属性副本。虚继承通过虚基类指针(vbptr)和虚基类表(vbtable)实现,确保同名属性只保留一份。这种机制解决了多重继承中的属性冗余问题,使派生类能正确访问基类成员。

2025-09-22 20:23:24 753

原创 C++深拷贝陷阱:指针内存管理实战解析

该代码示例展示了C++类中指针成员的内存管理问题。原代码存在两个主要缺陷:1)未在析构函数中释放堆内存;2)使用默认拷贝构造函数导致浅拷贝问题。解决方案是:1)添加析构函数释放内存;2)实现自定义拷贝构造函数进行深拷贝,为每个对象创建独立的内存空间。这样可避免重复释放同一内存地址的错误。修改后的代码通过new为每个对象的m_height分配独立内存,确保析构时能正确释放各自内存。输出验证了两个对象都能正确访问各自的身高值160。

2025-09-17 20:32:45 305

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除