基类指针指向派生类实例图解

简单的用图来解释下基类指针指向派生类实例的原理。


基类指针可访问的内存地址长度,比派生类指针可访问的内存地址长度要短。
C++中可以用基类指针指向派生类实例,但base_ptr可访问的地址长度只限于BaseClass范围,如下图所示;反之,用派生类指针指向基类实例则是不允许的,因为derived_ptr访问BaseClass范围之外的地址时,则会发生指针越界


base_ptr |---------------|---------------| derived_ptr
      |  |               |               |   |
      |  |Base class     | Derived Class |   |
      |  |               |               |   |
      -  |---------------|               |   |
                         |               |   |
                         |               |   |
                         |               |   |
                         |---------------|   -

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:基类指针指向派生类实例图解

本文作者:Yehuohanxing

发布时间:2017-10-09, 19:46:40

最后更新:2018-04-03, 23:26:42

原始链接:http://yehuohan.github.io/2017/10/09/杂记/基类指针指向派生类实例图解/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录