/*
 * Instituto Superior de Engenharia do Porto
 *
 * Estruturas de Informação
 *
 * 2000/2001
 *
 * ------------------------------------------
 *
 * classe para representar livros 
 *		(exercicio nº1 ficha nº1)
 *		
 * livro.cpp
 *
 */


#include <string.h>
#include "Livro_2.h"


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Livro::Livro()
{
	m_pszTitulo = NULL;
	setPreco(0);
}

Livro::~Livro()
{
	if (m_pszTitulo != NULL)
		delete [] m_pszTitulo;
}

Livro::Livro(const Livro& o)
{
	m_pszTitulo = NULL;
	setTitulo(o.getTitulo());
	setPreco(o.getPreco());
}

Livro::Livro(const char* pszTit, long lPreco)
{
	m_pszTitulo = NULL;
	setTitulo(pszTit);
	setPreco(lPreco);
}
	
char* Livro::getTitulo() const
{
	return m_pszTitulo;
}

long Livro::getPreco() const
{
	return m_lPreco;
}

void Livro::setTitulo(const char* pszTit)
{
	if (m_pszTitulo != NULL)
		delete [] m_pszTitulo;

	m_pszTitulo = new char[strlen(pszTit)+1];
	strcpy(m_pszTitulo, pszTit);
}

void Livro::setPreco(long lPreco)
{
	m_lPreco = lPreco;
}

Livro& Livro::operator=(const Livro& o)
{
	setTitulo(o.getTitulo());
	setPreco(o.getPreco());

	return *this;
}

bool operator==(const Livro& a, const Livro& b)
{
	if (a.getTitulo() == b.getTitulo() && a.getPreco() == b.getPreco())
		return true;
	else
		return false;
}





