zoukankan      html  css  js  c++  java
  • 13.2 抽像类与体类(Abstract & Concrete Classes) 简单

    //13.2 抽像类与体类(Abstract & Concrete Classes)
    //只要子类中尚有未被覆盖定义的纯虚函数,那么,子类相对于抽像基类的抽像状态不变
    //该类继承结构由下列程序代码实现之:

    #include <iostream>
    class Display{
    public:
    	virtual void inint()=0;
    	virtual void write(char* pStr)=0;
    };//定义两个纯虚函数
    class Monochrome : public Display
    {
        virtual void inint();  //覆盖
    	virtual void write(char* pStr); //覆盖
    };
    void Monochrome::inint(){ };
    void Monochrome::write(char* pStr){
    	std::cout<<"Monochrome: "<<pStr<<"\n";
    };
    
    class ColorAdapter : public Display
    {
    public:
    	virtual void write(char* pStr); //覆盖 
    };
    void ColorAdapter::write(char* pStr)
    {
        std::cout<<"ColorAdapter: "<<pStr<<"\n";
    }
    
    class SVGA : public ColorAdapter
    {
    public:
    	virtual void inint();  //覆盖
    };
    void SVGA::inint(){ }
    
    void g(Display* d)
    {
        d->inint();
    	d->write("hello.");
    }
    int main()
    {
    	std::cout<<"I am main\n";
    	Monochrome mc;
    	SVGA svga;
    	g(&mc);
    	g(&svga);
        system("pause");
    	return 0;
    }
    

      

  • 相关阅读:
    单例模式
    工厂模式
    代理模式
    网络问题
    java中System.getProperty()方法详解
    配置logback.xml文件来实现日志文件输出
    Spring MVC 文件上传与下载快速学习
    SpringMVC中的视图和视图解析器
    JSON的概述和简单的操作
    BeanValidate中的注解
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2348422.html
Copyright © 2011-2022 走看看