ex7-10.cpp - Example 7-10 Virtual Functions (1)

// File: ex7-10.cpp

#include <iostream> 
using namespace std;

class B
{
public:
	B() { cout << "B ctor called for " << this << endl;}
	void funk1() { cout << "B::funk1() called for " << this << endl; }
	virtual void funk2() { cout << "B::funk2() called for " << this << endl; }
};
class D : public B
{
public:
	D() { cout << "D ctor called for " << this << endl;}
	void funk1() { cout << "D::funk1() called for " << this << endl; }
	virtual void funk2() { cout << "D::funk2() called for " << this << endl; }

};

int main(void)
{
	B b;
	D d;
	cout << endl;

	b.funk1();
	d.funk1();
	cout << endl;

	b.funk2();
	d.funk2();
	cout << endl;

	B* pB;
	pB = &b;
	pB->funk1();
	pB->funk2();
	cout << endl;

	pB = &d;
	pB->funk1();
	pB->funk2();

	cout << endl;

	cout << "size of b = " << sizeof b << endl;
	cout << "size of d = " << sizeof d << endl;

	return 0;
}



CIS27: Programming in C++    Instructor: Joe Bentley