From 20fd2e8b7f8e6e860a1c48f76d3cf0d8eb5f464e Mon Sep 17 00:00:00 2001 From: selfboot Date: Thu, 11 Apr 2024 19:39:12 +0800 Subject: [PATCH] Improve c++_object_model --- images/20240409_c++_object_model_inherit.png | Bin 0 -> 42480 bytes source/_drafts/c-object-model.md | 11 +++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 images/20240409_c++_object_model_inherit.png diff --git a/images/20240409_c++_object_model_inherit.png b/images/20240409_c++_object_model_inherit.png new file mode 100644 index 0000000000000000000000000000000000000000..eb560c88d4d939b0b5d310437dd0064957c4e546 GIT binary patch literal 42480 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 z @@ -339,6 +343,8 @@ int main() { } ``` +这种情况下,对象的内存布局是什么样?虚函数的多态调用又是怎么实现的呢? + ## 地址空间布局随机化 @@ -360,3 +366,4 @@ int main() { ## 总结 +