// cConta.h
// 16 de Janeiro de 2001 
// Introdução do POLIMORFISMO com o uso de funções VIRTUAIS 
// 		Acrescentada a classe cContaPoupanca . O método Depositar passou a virtual 

class cContaOrdem 
{
	static char *Descricao;
protected :
	int NrConta;
	float Saldo;
	

public :
		
	cContaOrdem( int NumConta );      
	int GetNrConta();
	float GetSaldo();

	virtual bool Depositar( float Valor );
	virtual bool Levantar( float Valor );
	virtual char *GetDescricao();

	
};




// Uma ContaOrdenado é uma espécie de ContaOrdem,
// com a particularidade de nos levantamentos poder ficar com o saldo negativo

// Aplicação do Princípio da Herança
//		cContaOrdenado herda os atributos e as operações de cContaOrdem
//		Redefinimos a operação Levantar

class cContaOrdenado :  public cContaOrdem
{
	static char *Descricao;
	float LimiteCredito;

public :
	cContaOrdenado( int NumConta );
	bool Levantar( float Valor );	
	char *GetDescricao();

	
};


// Uma ContaPoupanca é uma espécie de ContaOrdem,
// com a particularidade de só aceitar depósitos no mínimo de 20000 escudos

// Aplicação do Princípio da Herança
//		cContaPoupanca herda os atributos e as operações de cContaOrdem
//		Redefinimos a operação Depositar

class cContaPoupanca :  public cContaOrdem
{
	static char *Descricao;
public :
	cContaPoupanca( int NumConta );
	bool Depositar( float Valor );	
	char *GetDescricao();

	
};


