類的構造與析構

#include <iostream>
using namespace std;

class A
{
public:
	
	A(){ cout<<"A"<<endl;}
	virtual ~A() {cout <<"~A"<<endl;}
	virtual void f1() { cout << "f1 yu A" <<endl;}
     void f2() { cout << "f2 yu A" <<endl;}
	 void f3() { cout << "f3 yu A" <<endl;}

};

class B : public A
{

public:
	B(){ cout<<"B"<<endl;}
	virtual ~B() {cout <<"~B"<<endl;}

	virtual void f1() { cout << "f1 yu B" <<endl;}
     void f3() { cout << "f3 yu B" <<endl;}

};
void main()
{
	A* a2 = new A;
	B* b2 = new B;

	A a;
	B b;

	a.f1();
	b.f1();
	a.f2();
	b.f2();
	a.f3();
	b.f3();

	cout << endl;
	A* a1 = new B();
	a1->f1();
	a1->f2();
	a1->f3();

	cout << "endl" << endl;

}

輸出結果
A
A
B
A
A
B
f1 yu A
f1 yu B
f2 yu A
f2 yu A
f3 yu A
f3 yu B

A
B
f1 yu B
f2 yu A
f3 yu A
endl
~B
~A
~A

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章