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 46 47 48 49 50 51 52 53 54 55 56 57 58
| #include <iostream>
#include <cmath>
class CPoint
{
double m_x;
double m_y;
bool m_calculerNorme;
double m_norme;
public :
CPoint(double x,double y)
:m_x(x),m_y(y),m_calculerNorme(true),m_norme(0.)
{
};
double & rx()
{
m_calculerNorme = true;
return m_x;
}
const double & x() const
{
return m_x;
}
double & ry()
{
m_calculerNorme = true;
return m_y;
}
const double &y() const
{
return m_y;
}
const double & norme()
{
if (m_calculerNorme)
{
std::cout<<"oui : ";
m_norme = sqrt(x()*x()+y()*y());
m_calculerNorme = false;
}
return m_norme;
}
};
int main(int argc, char* argv[])
{
CPoint p(10.,12.);
std::cout<<"norme : "<<p.norme()<<std::endl;
const CPoint & const_p =p;
double x_y = abs(p.x())+abs(p.y());
std::cout<<"norme : "<<p.norme()<<std::endl;
p.rx()+= 10;
std::cout<<"norme : "<<p.norme()<<std::endl;
return 0;
} |