// chapitre 4 virtuelles.cpp : définit le point d'entrée pour l'application console.
//

#include "stdafx.h"

class Base
{
public:
	void methode1()
	{
		printf("Base::methode1\n");
	}

	virtual void methode2()
	{
		printf("Base::methode2\n");
	}
} ;

class Derive : public Base
{
public:
	void methode1()
	{
		printf("Derive::methode1\n");
	}

	void methode2()
	{
		printf("Derive::methode2\n");
	}
} ;

enum Couleurs { rouge, vert, bleu };

int conv_couleur(Couleurs coul)
{
	return static_cast<int> ( coul );
}

void conv_sans_risque(Base*b)
{
	Derive*d1=dynamic_cast<Derive*>(b);
}

int main(int argc, char* argv[])
{
	Base*b;
	Derive*d;
	b=new Base();
	b->methode1();

	d=new Derive();
	d->methode1();

	printf("--------\n");
	b=d;
	b->methode1();

	/*printf("--------\n");
	b=d;
	b->methode2();

	Base& br=*d;
	br.methode1();
	br.methode2();*/
	return 0;
}

