All pastes #479703 Raw Edit

Untitled

public cpp v1 · immutable
·published 2007-05-09 21:08 UTC
rendered paste body
#include <iostream>class Animal{	int i;public:	Animal(int ii): i(ii) {};	Animal(const Animal &a): i(a.i){} 	void move() const{std::cout << "Animal::move\n";}};class Dog : public Animal{	int i;public:	Dog(int ii): i(ii), Animal(ii) {}	Dog(const Dog &d): Animal(d), i(d.i) {}	virtual void move() const{std::cout << "Dog::move\n";}};class Labrador : public Dog{	int i;public:	Labrador(int ii): i(ii), Dog(ii) {}	Labrador(const Labrador &l): Dog(l), i(l.i) {}	void move() const{std::cout << "Labrador::move\n";}};void f(const Animal &a) {a.move();}void g(const Dog &d) {d.move();}void h(const Labrador &l) {l.move();}int main(){	Labrador **const l = NULL;	Labrador c(2);	std::cout << "Labrador as animal:\n";	f(c);	std::cout << "Labrador as dog:\n";	g(c);	std::cout << "Labrador as Labrador:\n";	h(c);}