Classe Cerchio

Di seguito interfaccia e implementazione della classe Cerchio scritta durante la lezione del 13 marzo 2013. La classe Cerchio usa la composizione con la classe Punto.

Attenzione! Istanze di Cerchio con raggio 0.0 sono intese come cerchi di raggio tendente a 0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef CERCHIO_H
#define CERCHIO_H
 
#include "Punto.h"
 
class Cerchio {
public:
    Cerchio();
    Cerchio(float raggio);
    Cerchio(const Punto& centro, float raggio);
 
    const Punto& getCentro() const;
    float getRaggio() const;
 
    void setCentro(const Punto& valore);
    void setRaggio(float valore);
 
    void stampa() const;
 
private:
    Punto centro;
    float raggio;
};
 
#endif
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "Cerchio.h"
 
#include <iostream>
using std::cout;
 
Cerchio::Cerchio()
: centro(), raggio(0.0) {
}
 
Cerchio::Cerchio(float raggioIniziale)
: centro(), raggio(raggioIniziale) {
    if(raggio < 0.0)
        raggio = 0.0;
}
 
Cerchio::Cerchio(const Punto& centroIniziale, float raggioIniziale)
: centro(centroIniziale), raggio(raggioIniziale) {
    if(raggio < 0.0)
        raggio = 0.0;
}
 
const Punto& Cerchio::getCentro() const {
    return centro;
}
 
float Cerchio::getRaggio() const {
    return raggio;
}
 
void Cerchio::setCentro(const Punto& valore) {
    centro = valore;
}
 
void Cerchio::setRaggio(float valore) {
    if(valore >= 0.0)
        raggio = valore;
    else
        raggio = 0.0;
}
 
void Cerchio::stampa() const {
    cout << "Cerchio: centro ";
    centro.stampa();
    cout << ", raggio " << raggio << ";";
}

2 thoughts on “Classe Cerchio”

    1. Dear Ahmed,

      Here is a small example:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
      int main() {
          Cerchio c;
          c.stampa();
          cout << endl;
       
          c.setCentro(Punto(2, 3));
          c.setRaggio(1.5);
          c.stampa();
          cout << endl;
       
          return 0;
      }

      and the corresponding output:

      Cerchio: centro (0,0), raggio 0;
      Cerchio: centro (2,3), raggio 1.5;
      

Leave a Reply

Your email address will not be published. Required fields are marked *