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;
    }
    
  • 相关阅读:
    复习一些奇怪的题目
    NOIP 考前 KMP练习
    NOIP 考前 并查集复习
    NOIP 考前 Tarjan复习
    NOIP 考前 图论练习
    BZOJ 1468 树分治
    Codeforces Round #376 (Div. 2)
    CodeVS 线段覆盖1~5
    Luogu 3396 权值分块
    BZOJ 2743 树状数组
  • 原文地址:https://www.cnblogs.com/steady/p/1924934.html
Copyright © 2011-2022 走看看