simple base and derived class example [member function override pure virtual function]

Bjarne Stroustrup “Programming Principles and Practice Using C++”
Chapter 14 Drill 7
Using std_lib_facilities.h by Bjarne Stroustrup.

//  Philipp Siedler
//  Bjarne Stroustrup's PP
//  Chapter 14 Drill 7

#include "std_lib_facilities.h"
using namespace std;

class B2
{
public:
	virtual void pvf() = 0;
};

class D21 : public B2
{
public:
	void pvf() { cout << data << endl; }
	string data;
};

class D22 : public B2
{
public:
	void pvf() { cout << val << endl; }
	int val;
};

void f(B2& b2_ref) {
	b2_ref.pvf();
}

int main()
try
{
	D21 d21;
	d21.data = "hello";
	D22 d22;
	d22.val = 5;

	f(d21);
	f(d22);

	keep_window_open();
}
catch (exception& e) {
	cout << e.what() << endl;
	return 1;
}
catch (...) {
	cout << "Exiting" << endl;
	return 2;
}
Output:
hello
5
Please enter a character to exit

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.