zoukankan      html  css  js  c++  java
  • 多继承

    #include <iostream>
    using namespace std;
    
    class OBJ1
    {
    public:
    	OBJ1()
    	{
    		cout<<"construct OBJ1"<<endl;
    	}
    };
    
    class OBJ2
    {
    public:
    	OBJ2()
    	{
    		cout<<"construct OBJ2"<<endl;
    	}
    };
    
    class Base1
    {
    public:
    	Base1()
    	{
    		cout<<"construct Base1"<<endl;
    	}
    };
    
    class Base2
    {
    public:
    	Base2()
    	{
    		cout<<"construct Base2"<<endl;
    	}
    };
    
    
    class Base3
    {
    public:
    	Base3()
    	{
    		cout<<"construct Base3"<<endl;
    	}
    };
    
    class Base4
    {
    public:
    	Base4()
    	{
    		cout<<"construct Base4"<<endl;
    	}
    };
    
    /*
    多继承的构造顺序:
    1,按照父类被继承的顺序先构造虚拟基类,再构造非虚拟基类
    2,成员对象按照声明时的顺序被定义,对于组合的其他类的对象调用构造函数
    3,类自己的构造函数
    */
    class Derived : public Base1, virtual public Base2,
    				public Base3, virtual public Base4
    {
    public:
    	Derived() : Base4(),Base3(),Base2(),Base1(),obj2(),obj1()
    	{
    		cout<<"Derived ok."<<endl;
    	}
    protected:
    	OBJ1 obj1;
    	OBJ2 obj2;
    };
    
    
    void main()
    {
    	Derived d;
    	cout<<"this is ok."<<endl;
    }
    
  • 相关阅读:
    HTML5 表单新增属性
    js中获取css属性
    Java 枚举(enum)【感觉不是很常用】
    Java数组
    Java的反射机制
    IO,NIO【重点掌握】,Socket,Channel等的网络编程
    多线程
    注解
    动态代理
    动态编译
  • 原文地址:https://www.cnblogs.com/steady/p/1851181.html
Copyright © 2011-2022 走看看