zoukankan      html  css  js  c++  java
  • 类与对象解剖(虚函数)

    #include <iostream>
    using namespace std;
    
    class ClassA
    {
    public:
    	int m_data1;
    	int m_data2;
    	
    	void func1(){}
    	void func2(){}
    
    	virtual void vfunc1(){}
    	virtual void vfunc2(){}
    };
    
    
    class ClassB : public ClassA
    {
    public:
    	int m_data3;
    
    	void func2(){}
    
    	virtual void vfunc1(){}
    };
    
    class ClassC : public ClassB
    {
    public:
    	int m_data1;
    	int m_data4;
    
    	void func2(){}
    
    	virtual void vfunc1(){}
    };
    
    
    void main()
    {
    	cout<<sizeof(ClassA)<<endl;
    	cout<<sizeof(ClassB)<<endl;
    	cout<<sizeof(ClassC)<<endl<<endl;
    
    	ClassA a;
    	ClassB b;
    	ClassC c;
    
    	b.m_data1 = 1;
    	b.m_data2 = 2;
    	b.m_data3 = 3;
    
    	c.m_data1 = 11;
    	c.m_data2 = 22;
    	c.m_data3 = 33;
    	c.m_data4 = 44;
    	c.ClassA::m_data1 = 111;
    
    	cout<<b.m_data1<<endl;
    	cout<<b.m_data2<<endl;
    	cout<<b.m_data3<<endl<<endl;
    
    	cout<<c.m_data1<<endl;
    	cout<<c.m_data2<<endl;
    	cout<<c.m_data3<<endl;
    	cout<<c.m_data4<<endl;
    	cout<<c.ClassA::m_data1<<endl<<endl;
    
    	cout<<&b<<endl;
    	cout<<&b.m_data1<<endl;
    	cout<<&b.m_data2<<endl;
    	cout<<&b.m_data3<<endl<<endl;
    
    	cout<<&c<<endl;
    	cout<<&c.ClassA::m_data1<<endl;
    	cout<<&c.m_data1<<endl;
    	cout<<&c.m_data2<<endl;
    	cout<<&c.m_data3<<endl;
    	cout<<&c.m_data4<<endl<<endl;
    }
    
  • 相关阅读:
    vue实现左右两列竖直分别滑动,且双向关联的选项卡(一)
    根据对象的某个字段(值为数字)排序
    如何将data中字符传的换行正常显示
    HBase集群搭建部分配置
    YARN详解
    常用查询函数
    分桶表
    hive分区表
    xsync分发脚本
    ssh免密登录
  • 原文地址:https://www.cnblogs.com/steady/p/1924934.html
Copyright © 2011-2022 走看看