// cConta.cpp 
//            Implementação das operações das classes cContaOrdem e cContaOrdenado
// 3 e 9 de Janeiro de 2001

#include "cConta.h"


// Definição da conta ordem 

cContaOrdem::cContaOrdem( int NumConta )
{
	Saldo = 0;
	NrConta = NumConta;
}

bool cContaOrdem::Depositar( float Valor )
{
	Saldo = Saldo + Valor;
	return true;
}


bool cContaOrdem::Levantar( float Valor )
{
	if ( Saldo >= Valor )
	{
		Saldo = Saldo - Valor;
		return true;
	}
	else
		return false;

}


int cContaOrdem::GetNrConta()
{
	return NrConta;
}
	

float cContaOrdem::GetSaldo()
{
	return Saldo;
}



// Definição da classe cContaOrdenado

cContaOrdenado::cContaOrdenado( int NumConta ) : cContaOrdem( NumConta )
{
	LimiteCredito = 100000;
}


bool cContaOrdenado::Levantar( float Valor )
{
	if ( Saldo + LimiteCredito >= Valor )
	{
		Saldo = Saldo - Valor;
		return true;
	}
	else
		return false;
	
}



// Implementação ALTERNATIVA do método Levantar
// bool cContaOrdenado::Levantar( float Valor )
// {
//	bool Resultado;

//	Saldo = Saldo + LimiteCredito; 
	
//	Resultado = cContaOrdem::Levantar(Valor);  // Chama o Levantar da classe base ( cContaOrdem )

//	Saldo = Saldo - LimiteCredito;
		
//	return Resultado;
		
// }

