sto ottenendo questo errore fastidioso e io non so perché = ( Questa è la domanda, ho risolto, ma sto avendo un problema con il costruttoreerrore C2512: non appropriato costruttore di default disponibili
!.Scrivi un programma che definisce una classe chiamata Circle che include il raggio (tipo double) come membri dati Fornire un set e una funzione get per questo membro dati. Assicurarsi che il valore immesso dall'utente sia valido e corretto (maggiore di zero).
Includi membri funzione: un membro.function che calcola e restituisce Diametro del membro b.function cerchio che calcola e ritorno Circonferenza del cerchio c membro di funzione che calcola e Area di ritorno del cerchio d.funzione membro che Visualizza tutte le informazioni del cerchio e.constructor che inizializza i dati membro. Se il raggio non è valido (vale a dire meno di zero) impostalo su zero.
l'errore che sto affrontando:
errore C2512: 'Circle': nessun costruttore predefinito appropriato disponibile
questo è il mio codice:
#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;
}
Penso che tu abbia frainteso come dovrebbero apparire le funzioni dei membri. Il tuo codice non segue uno stile particolarmente orientato agli oggetti. Per esempio, non posso ottenere l'area del cerchio 'C' chiamando' C.Area() '. Dovresti aggiustarlo. Inoltre, c'è una ragione particolare per cui tutti i tuoi argomenti hanno nomi diversi, anche se pensavano che * tutti * si riferivano al raggio? Non farlo, sii coerente. –
Il costruttore tenta di utilizzare una funzione membro, per questo deve esistere già un oggetto, quindi è necessario che un costruttore abbia terminato prima. Dovresti inizializzare le variabili membro usando un costruttore del loro tipo prima di entrare nel corpo del costruttore. –