zoukankan      html  css  js  c++  java
  • C++中多继承和类型转换

    #include "stdafx.h"

    struct IX
    {
        
    virtual void FX() = 0;
    };

    struct IY
    {
        
    virtual void FY() = 0;
    };

    class CA:
        
    public IX,
        
    public IY
    {
        
    virtual void FX() 
        {
            printf(
    "CA->FX()\n");
        }
        
    virtual void FY()
        {
            printf(
    "CA->FY()\n");
        }

    };

    class CB:
        
    public CA
    {
        
    virtual void FX() 
        {
            printf(
    "CB->FX()\n");
        }
    };




    int _tmain(int argc, _TCHAR* argv[])
    {
        CA 
    * pA = new CA;
        CB 
    * pB = new CB;

        
    //多重继承和类型转换效果比较
        printf("address of CA: %x\n", pA);
        IX 
    * px = pA;
        IY 
    *py = pA;
        printf(
    "IX address of CA: %x\n", px);
        printf(
    "IY address of CA: %x\n", py);

        px
    ->FX();
        px 
    = pB;
        px 
    ->FX();

        py
    ->FY();
        py 
    = pB;
        py 
    ->FY();

        
    return 0;
    }

    运行结果:

     

  • 相关阅读:
    JSP内置对象和属性
    AWT和Swing
    Servlet的生命周期
    Servlet 与 CGI 的比较
    spring PROPAGATION
    JVM内存
    CISC, RISC 探究
    3.5.10 判断数字的奇偶
    java 中利用异或实现两个变量互换
    Java三大主流框架概述
  • 原文地址:https://www.cnblogs.com/kwliu/p/2195896.html
Copyright © 2011-2022 走看看