FEI的日志
主页
归档
关于
亮色
暗色
跟随系统
主页
归档
关于
GYF
“在这个信息爆炸的时代,真正的智慧不是知道答案,而是提出正确的问题。” ---- GPT
分类
DIY
2
工具
2
技术
105
脑洞
2
风景
1
更多
标签
Activity
Android
Binder
Bitmap
C++
Canvas
Dart
Flutter
Gradle
Java
Json
Kotlin
Linux
macOS
MathML
Nas
OpenCV
OpenGL
RaspberryPi
RecyclerView
Skia
Surface
Trip
View
Vim
WebView
Widgets
工具
算法
脑洞
更多
187 字
1 分钟
菱形继承问题
2019-08-27
技术
/
C++
最近听到一个词:菱形继承,搞 Java 的很少听到
假设 A 类和 B 类从 X 派生,且类 C 同时多继承 A 和 B,那么 C 的对象会拥有两套 X 的实例数据(可以分别独立访问)
这种情况下,假设 X 类中的有个属性 f ,A 和 B 都会独立继承 X.f , C 像要访问 X.f 时要显式的指定:
A::f,B::f
为了解决这个问题,虚继承的概念被设计出来 A 和 B 都虚继承自 X,X 是虚拟基类
虚拟基类是共享的,A 和 B 继承的是同一个 X 的实例
网上查资料讲的都是 C++ 的例子,是不是只有 C++ 有这个问题?
class/Class/KClass/Object
Java 你需要知道的
蜀ICP备2023019492号