Ciao, sto sudiando il cast dei puntatori da una classe base ad una derivata ma non ho capito il seguento codice:

Codice PHP:
class Point {
   
friend ostream &operator<<( ostream &, const Point & );
public:
   
Pointint 0int );      // default constructor
   
void setPointintint );      // set coordinates
   
int getX() const { return x; }  // get x coordinate
   
int getY() const { return y; }  // get y coordinate
protected:         // accessible by derived classes
   
int xy;       // x and y coordinates of the Point
};


class 
Circle : public Point {  // Circle inherits from Point
   
friend ostream &operator<<( ostream &, const Circle & );
public:
   
// default constructor
   
Circledouble r 0.0int x 0int y );

   
void setRadius( double );   // set radius
   
double getRadius() const;   // return radius
   
double area() const;        // calculate area
protected:
   
double radius;
};


Point::Pointint aint b ) { setPointa); }
Circle::Circledouble rint aint b )
   : 
Pointa)       // call base-class constructor
setRadius); }

int main()
{
   
Point *pointPtr 0p3050 );
   
Circle *circlePtr 0c2.712089 );
   
cout << "Point p: " << << "\nCircle c: " << << '\n';
...

Per motivi di spazio ho lasciato le altre funzioni membro, quello che io non ho capito è:

Point *pointPtr = 0, p( 30, 50 );
Circle *circlePtr = 0, c( 2.7, 120, 89 );
cout << "Point p: " << p << "\nCircle c: " << c << '\n';

Qualcuno sa spiegarmi la chiamata del puntatore e cosa significano c e p?


Grazie