estoy recibiendo este error molesto y no sé por qué = ( Esta es la pregunta, lo solucioné pero estoy teniendo un problema con el constructorerror C2512: ningún constructor predeterminado adecuado disponible
!.Escriba un programa que defina una clase llamada Círculo que incluya radio (tipo doble) como miembros de datos. Proporcione un conjunto y una función get para este miembro de datos. Asegúrese de que el valor ingresado por el usuario sea válido y correcto (mayor de cero).
Incluir miembros de la función: un miembro de función que calcule y devuelva Diámetro del círculo miembro de la función que calcula y return Circunferencia del elemento c.function del círculo que calcula y área de retorno del miembro d.function que muestra todos información del círculo e.constructor que inicializa el miembro de datos. Si el radio no es válido (es decir, menor que cero) configúrelo en cero.
el error que estoy enfrentando:
error C2512: 'Círculo': ningún constructor predeterminado adecuado disponible
este es mi código:
#include <iostream>
using namespace std;
class Circle
{
public:
Circle(double);
void setRadius(double);
double getRadius();
void Display();
double Diameter(double);
double Circumference(double);
double Area(double);
private:
double radius;
};
Circle::Circle(double radio)
{
setRadius(radio);
}
void Circle::setRadius(double ra)
{
if (ra < 0)
{
radius = 0;
}
else
radius = ra;
}
double Circle::getRadius()
{
double rado;
cout << "Enter the Radius:\n";
cin >> rado;
setRadius(rado);
return radius;
}
double Circle::Diameter(double rad)
{
return 2*rad;
}
double Circle::Area(double radi)
{
return 3.14 * radi * radi;
}
double Circle::Circumference(double radiu)
{
return 2 * 3.14 * radiu;
}
void Circle::Display()
{
cout << "The Radius of the circle is: \n";
cout << radius;
cout << "\nThe Diameter of the circle is: \n";
cout << Diameter(radius);
cout << "\nThe Circumference of the circle is: \n";
cout << Circumference(radius);
cout << "\nThe Area of the circle is: \n";
cout << Area(radius);
cout << endl;
}
int main()
{
Circle C;
C.getRadius();
C.Display();
return 0;
}
Creo que no entendió cómo deberían ser las funciones de miembro. Su código no sigue un estilo particularmente orientado a objetos. Por ejemplo, no puedo obtener el área del círculo 'C' llamando a' C.Area() '. Deberías arreglar eso. Además, ¿existe alguna razón en particular por la que todos sus argumentos tengan nombres diferentes, aunque crean que * todos * se refieren al radio? No hagas eso, sé consistente. –
Su constructor intenta usar una función miembro, para eso, ya debe haber un objeto, por lo que un constructor debe haber terminado antes. Debe inicializar las variables miembro utilizando un constructor de su tipo antes de ingresar el cuerpo del constructor. –