Red de conocimiento informático - Conocimiento informático - Ayuda con dos preguntas de programación en C

Ayuda con dos preguntas de programación en C

#include lt;iostreamgt;

#include lt;cmathgt;

usando el espacio de nombres std;

punto de clase

{

público:

punto();

punto(doble x, doble y

doble distancia(); );

p>privado:

estructura coordinada

{

doble x

doble y;

}coord;

doble dist;

};

punto::punto()

{

coord.x = 0.0;

coord.y = 0.0

dist = 0.0; p>punto::punto(doble x, doble y)

{

coord.x = x;

coord.y = y;

dist = sqrt (x * x y * y);

}

punto doble en línea: distancia()

{

devolver dist;

}

int main()

{

punto a(3, 4), b( 5 , 12);

cout lt; "Distancia desde el origen al punto a(3, 4):" lt; a.distance() lt; p>

cout lt; "Distancia desde el origen al punto b(12, 13):" lt; b.distance() lt;

#include lt;iostreamgt;

usando el espacio de nombres std;

forma de clase

{

public :

virtual const char* ShapeName()const = 0

virtual double Area()const{return 0.0;}

virtual ~shape() { };

};

punto de clase: forma pública

{

público:

const char * ShapeName() const;

amigo ostreamamp; operador lt; (ostreamamp; os, const pointamp; pt); nombre;

};

char* punto: .nombre = "Punto";

p>inline const char* point::ShapeName()const

{

nombre de retorno;

}

operador ostreamamp en línea; lt. (ostreamamp; os, const pointamp; pt)

{

os lt; pt.ShapeName() lt; p> p>

return os;

}

círculo de clase: forma pública

{

público:

círculo explícito (doble r);

const char* ShapeName()const;

double Area()const.

amigo operador ostreamamp; lt; lt; (ostreamamp; os, const círculoamp; circ);

privado:

nombre de char* estático;

doble pi estático;

radio doble;

};

char* círculo:: nombre = "Círculo";

doble círculo:: pi = 3,14159;

círculo::círculo(doble r):radio(r)

{

}

const char* en línea círculo::NombreDeForma () const

{

nombre de retorno;

}

doble círculo en línea: Área() const

{

return pi * radio * radio;

}

operador ostreamamp en línea lt; / p>

{

sistema operativo lt; circ.ShapeName() lt; '\n'; }

int main()

{

forma* ps = nuevo punto

cout lt; Nombre de forma () lt; '\n';

eliminar ps;

ps = nuevo círculo(3); - gt; Nombre de forma() lt; '\n';

cout lt; ps-gt; eliminar ps;

}