Estratto del documento

#include <iostream>

#include "es_6a_class_ter.h"

using namespace std;

int main(){

vettore v1(1,3,4), v2(-10,-20,-30);

// test per i vari overloading...

vettore v3 = 6 * v1;

vettore v4 = v2 * 0.1;

vettore v5 = v3 / 3;

vettore v6 = !v4;

vettore v7 = v1;

cout << endl << endl;

cout << "--> v1: " << v1 << endl;

cout << "--> v2: " << v2 << endl;

cout << "--> v3 = 6 * v1: " << v3 << endl;

cout << "--> v4 = v2 * 0.1: " << v4 << endl;

cout << "--> v5 = v3 / 3: " << v5 << endl;

cout << "--> v6 = !v4: " << v6 << endl;

cout << "--> v7 = v1: " << v7 << endl;

cout << "--> v1==v7 e': " << (v1==v7) << endl;

cout << "--> v2==v7 e': " << (v2==v7) << endl;

v3+=v5;

cout << "--> v3+=v5, dopodiche v3 e': " << v3 << endl << endl;

cout << "--> Fine." << endl;

return 0;

}

#ifndef VETTORE_H

#define VETTORE_H

#include <iostream> // necessario anche qui, perche' si parla di "ostream"

using namespace std;

class vettore{

friend ostream & operator<< (ostream &, const vettore &);

friend vettore operator*(double, const vettore &);

public:

vettore();

vettore(double, double, double);

double get_x() const{return x;}

double set_x(double n_x){return x=n_x;}

double get_y() const{return y;}

double set_y(double n_y){return y=n_y;}

double get_z() const{return z;}

double set_z(double n_z){return z=n_z;}

double modulus();

double scalar_prod(const vettore&);

vettore cross_prod(const vettore&);

// si fa overloading di diversi operatori...

// si possono creare due diversi overloading per il *:

vettore operator*(double) const; // prodotto per scalari nella forma

v * n; // il caso n * v va trattato come

funzione friend... // (vedi sopra)

vettore operator/(double); // divisione di un vettore per un numero:

v1 = v2/5; vettore operator!(); // si decide che l'operatore (unario) "!"

cambia di // segno il vettore...

bool operator==(const vettore &);

// con "==" si vuole in pratica incorporare il controllo

// componente per componente all'interno della classe...

vettore& operator+=(const vettore &);

Anteprima
Vedrai una selezione di 1 pagina su 5
Programma C++ - Euclideo Pag. 1
1 su 5
Sintesi

Euclideo C++

Il programma permette di scrivere una classe vettore, rappresentante un vettore nello spazio euclideo a tre dimensioni (x, y, z) di R_3. L'oggetto 'vettore' deve avere:

  • Come data members le componenti cartesiane x, y, z
  • Un costruttore con le tre componenti
  • Funzioni get e set per le componenti
  • Una funzione modulo() per ottenere la lunghezza del vettore
  • Una funzione prodotto_scalare() che rende un double da due vettori
  • Una funzione prodotto vettoriale() che rende un vettore
  • Overloading degli operatori + e - tra due oggetti vettore
  • Overloading dell'operatore << per poter utilizzare, ad es.: cout << v1;
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi