zoukankan      html  css  js  c++  java
  • C++走向远洋——52(十三周阅读程序)

    */
     * Copyright (c) 2016,烟台大学计算机与控制工程学院
     * All rights reserved.
     * 文件名:text.cpp
     * 作者:常轩
     * 微信公众号:Worldhello
     * 完成日期:2016年5月22日
     * 版本号:V1.0
     * 问题描述:十二周阅读程序
     * 程序输入:无
     * 程序输出:见运行结果
     */
    //(1)虚函数
    #include<iostream>  
    using namespace std;  
    class A {  
    int a;  
    public:  
       A():a(5){}  
       virtual void print()const { cout<<a;}  
    };  
    class B: public A {  
       char b;  
    public:  
        B() { b='E'; }  
        void print() const { cout<<b; }  
    };  
    void show(A &x) { x.print(); }  
    int main()  
    {  
       A d1,*p;  
       B d2;  
       p=&d2;  
       d1.print();  
       d2.print();  
       p->print();  
       show(d1);  
       show(d2); 
       cout<<endl; 
       return 0;  
    }  


    运行结果:


    //(2)虚析构函数
    
    #include <iostream>  
    using namespace std;  
    class BASE  
    {  
    private:  
        char c;  
    public:  
        BASE(char n):c(n) {}  
        virtual ~BASE() { cout<<c; }  
    };  
    class DERIVED:public BASE  
    {  
    private:  
        char c;  
    public:  
        DERIVED(char n):BASE(n+1),c(n) {}  
        ~DERIVED(){ cout<<c; }  
    };  
    int main(){  
        DERIVED d('X'); 
    	
        return 0;  
    }    

    运行结果:


    //(3)纯虚函数
    #include <iostream>  
    using namespace std;  
    class Base  
    {  
    public:  
        virtual void Who() =0;  
    };  
    class FirstDerived:public Base  
    {  
    public:  
        void Who() { cout<<"F"; }  
    };  
    class SecondDerived:public Base  
    {  
    public:  
        void Who() { cout<<"S"; }  
    };  
    int main()  
    {  
        FirstDerived first_obj;  
        SecondDerived second_obj;  
        Base &bref=first_obj;  
        bref.Who();  
        bref=second_obj;  
        bref.Who();  
        Base *bp;  
        bp=&first_obj;  
        bp->Who();  
        bp=&second_obj;  
        bp->Who();  
        return 0;  
    }  

    运行结果:



  • 相关阅读:
    MDL中捕获到损坏的页表页
    跟踪MmSt分页池使用情况
    了解NTFS压缩
    如何跟踪高CPU在用户模式应用程序-现场调试!
    如何与转储文件建立丰富多彩的关系
    Kernel Stack Overflows
    非分页池的消耗
    MBR反汇编
    LPC (Local procedure calls)(二)内核调试扩展
    LPC (Local procedure calls) (一)数据结构
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232204.html
Copyright © 2011-2022 走看看