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:
Point( int = 0, int = 0 ); // default constructor
void setPoint( int, int ); // set coordinates
int getX() const { return x; } // get x coordinate
int getY() const { return y; } // get y coordinate
protected: // accessible by derived classes
int x, y; // x and y coordinates of the Point
};
class Circle : public Point { // Circle inherits from Point
friend ostream &operator<<( ostream &, const Circle & );
public:
// default constructor
Circle( double r = 0.0, int x = 0, int y = 0 );
void setRadius( double ); // set radius
double getRadius() const; // return radius
double area() const; // calculate area
protected:
double radius;
};
Point::Point( int a, int b ) { setPoint( a, b ); }
Circle::Circle( double r, int a, int b )
: Point( a, b ) // call base-class constructor
{ setRadius( r ); }
int main()
{
Point *pointPtr = 0, p( 30, 50 );
Circle *circlePtr = 0, c( 2.7, 120, 89 );
cout << "Point p: " << p << "\nCircle c: " << 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