// Listing 12.7 Calling base method from within an overridden method.

#include <iostream>
using namespace std;

class Mammal
{
public:
	void Move() const { cout << "Mammal move one step\n"; }
	void Move(int distance) const
	{
		cout << "Mammal move " << distance;
		cout << " steps.\n";
	}

protected:
	int itsAge;
	int itsWeight;
};

class Dog : public Mammal
{
public:
	void Move() const;
};

void Dog::Move() const
{
	cout << "In dog move...\n";
	Mammal::Move(3);
}

int main()
{
	Mammal bigAnimal;
	Dog fido;
	bigAnimal.Move(2);		// Mammal move 2 steps.
	fido.Mammal::Move(6);	// Mammal move 6 steps.
	return 0;
}
