• 关于C++的子类指针指向父类


    基类指针引用派生类对象

    用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的;

    但是只能引用基类成员
    若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误。
    解决该问题的答案是虚函数和多态性??? 这个说法不正确吧)

    派生类指针引用基类的对象

    用派生类指针引用基类的对象。
    这种引用方式会导致语法错误。
    派生类指针必须先强制转换为基类指针,这种方法是不安全的。


    而在侯捷的《深入浅出MFC》中“第二章C++重要性质”中:

    1. 如果你以一个"基类之指针"指向一个"派生类之对象",那么经由该指针你只能调用该基类所定义的函数
    2. 如果你以一个“派生类之指针”指向一个“基类之对象”,你必须先做明显的转型操作(explicit cast),这种作法很危险。
    3. 如果基类和派生类都定义了“相同名称之函数”,那么通过对象指针调用成员函数时,到底调用了那个函数,必须视该指针的原始类型而定,而不是视指针实际所指的对象的类型而定;
      这与第1点其实意义相通。

    总之,不要用子类的指针指向父类对象。
    因为子类指针可以指向子类的成员,若这些成员是父类没有的,便产生了错误。

    2015-11-22 21:13:51 星期日 修改

  • 相关阅读:
    笔记本CPU
    [转]Linux管理员新手易犯的十种错误
    Linux 如何禁止用户登录
    Linux 工作人员之间的交互
    双核处理器
    Ant时间戳的使用
    [转]linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明
    ADDM 报告结果中的相关术语
    Mysql 用户密码
    [转]Linux系统中用户帐户清洁与安全方法
  • 原文地址:https://www.cnblogs.com/iois/p/4537736.html
Copyright © 2020-2023  润新知