나는이 짜증나는 오류가 오전 = (이 질문은 , 나는 그것을 해결하는 이유 나도 몰라하지만 난 생성자에 문제가 있어요오류 C2512 : 자료 없음 적절한 기본 생성자
!.반원 (double 유형)을 데이터 멤버로 포함하는 Circle 클래스를 정의하는 프로그램을 작성하고이 데이터 멤버에 대해 집합과 가져 오기 기능 을 입력합니다. 사용자가 입력 한 값이 이고 올바른지 0보다 큼)
함수 멤버를 포함합니다. 계산하고 반환하는 a.function 멤버 계산하는 원 b.function 멤버의 직경 및 return 계산할 원 c.function 멤버의 둘레와 반환 원을 표시하는 영역 d.function 멤버 모두 표시 데이터를 초기화하는 원 e.constructor의 정보 멤버. 반경이 유효하지 않은 경우 (예 : 0 미만) 으로 설정합니다.
오류 내가 직면하지 오전 :
가능한 적절한 기본 생성자를오류 C2512 : '서클'
이 내 코드입니다 :
#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;
}
회원 기능이 어떻게 보일지 오해 한 것 같습니다. 코드가 특히 객체 지향 스타일을 따르지 않습니다. 예를 들어,'C.Area() '를 호출하여 원의'C'영역을 가져올 수 없습니다. 그걸 고쳐야 해. 또한, 귀하의 모든 주장이 다른 이름을 가지고있는 특별한 이유가 있습니까? * 모두 *가 반지름을 참조한다고 생각하십니까? 그렇게하지 마시고 일관성있게하십시오. –
생성자가 멤버 함수를 사용하려고 시도하기 때문에 이미 생성자가 있어야하므로 생성자를 완료해야합니다. 생성자 본문을 입력하기 전에 유형의 생성자를 사용하여 멤버 변수를 초기화해야합니다. –