#include <iostream>
#include <typeinfo>

class Hond {
public:
	virtual ~Hond() {
	}
	virtual void blaf() const {
		std::cout<<"Blaf."<<std::endl;
	}
// ...
};

class SintBernard: public Hond {
public:
	virtual void blaf() const {
		std::cout<<"Woef!"<<std::endl;
	}
// ...
};

void printRas(Hond& hr) {
	std::cout<<typeid(hr).name()<<std::endl;
}

int main() {
	SintBernard boris;
	printRas(boris);
	std::cin.get();
	Hond h;
	printRas(h);
	std::cin.get();
	return 0;
}

/*

// Output als het programma vertaald is met Borland C++ Builder:
SintBernard
Hond

// Output als het programma vertaald is met Microsoft Visual C++:
class SintBernard
class Hond

// Output als het programma vertaald is met GNU gcc:
11SintBernard
4Hond

*/
