You are on page 1of 1

Declaració d’una classe Sobrecàrrega d’operadors

class Punt class Complex


{ {
public: public:
void setX(float x); ...
void setY(float y); Complex operator+(const Complex &c) const;
void llegeix(); Complex operator-(const Complex &c) const;
Complex operator*(const Complex &c) const;
float getX() const; ...
float getY() const; };
void mostra() const;
float distancia(Punt& p) const; Complex Complex::operator+(const Complex &c) const
private: {
float m_x, m_y; Complex resultat;
}
resultat.m_real = m_real + c. m_real;
Implementació dels mètodes d’una classe
resultat.m_img = m_img + c. m_img;
#include "Punt.h" return resultat;
}
void Punt::llegeix()
{ Operadors E/S
cout << "Introdueix x i y: "; cout << c;
cin >> m_x >> m_y; ostream& operator<<(ostream& output, Complex& c)
} {
output << c.getReal() << "+" << c.getImg() << "i";
Constructors return output;
class Punt Punt::Punt()
{ { }
public: m_x = 0;
Operadors E/S amb fitxers
Punt(); m_y = 0;
~Punt(); } fitxer >> pt;
ifstream& operator>>(ifstream& input, Punt& pt)
Implementació inline
{
class Punt float x, y;
{ input >> x >> y;
public: pt.setX(x);
Punt() { m_x = 0; m_y = 0; } pt.setY(y);
~Punt() { } return input;
}
Inicialització directa dels atributs
Fitxers
class Punt
{ Declaració i obertura
public:
#include <fstream>
Punt(): m_x(0), m_y(0) { }
using namespace std;
Constructor amb paràmetres
ofstream fitxer;
class Punt fitxer.open(“nom_fitxer.txt");
{
public: Lectura / Escriptura
Punt(float x, float y): m_x(x), m_y(y) {}
int x; int x = 10;
Utilització de const al pas de paràmetres fitxer >> x; fitxer << x;
void calculaDistancia(const Punt& p1)
{ Tancament fitxer
Punt p2; fitxer.close();

p1.mostra(); Final fitxer


p2.llegeix();
fitxer.eof(): mètode de la classe ifstream que
float d = p1.distancia(p2);
retorna true si hem intentat llegir un cop hem arribat al
cout << “Distancia: “ << d << endl;
final del fitxer.
};

You might also like