{ { 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. };