클래스와 대상 해부(허함수)

1588 단어 클래스 및 객체
#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;

}

좋은 웹페이지 즐겨찾기