use*_*492 15 c++ constructor class
我收到这个恼人的错误,我不知道为什么=(!这是问题,我解决了它,但我遇到了构造函数的问题.
编写一个程序,定义一个名为Circle的类,其中包含radius(double类型)作为数据成员.为此数据成员提供set和get函数.确保用户输入的值有效且正确(大于零).
包括函数成员:a.计算和返回圆的直径的函数成员b.计算和返回圆周的函数成员c.计算和返回圆周面的函数成员d.显示所有信息的函数成员circle e.constructor初始化数据成员.如果半径无效(即小于零),则将其设置为零.
我面临的错误:
错误C2512:'Circle':没有合适的默认构造函数可用
这是我的代码:
#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;
}
Run Code Online (Sandbox Code Playgroud)
hmj*_*mjd 15
该行调用不带参数的构造函数(称为默认构造函数):
Circle C;
Run Code Online (Sandbox Code Playgroud)
您定义的唯一构造函数是:
Circle(double);
Run Code Online (Sandbox Code Playgroud)
希望这应该指向正确的方向.
默认构造函数是没有任何参数的构造函数.通常,它是为您提供的.但是,如果你明确定义任何其他构造函数,那么它不是.所以你必须自己定义,或不使用它.在main中创建对象时使用它,如下所示:
Circle C;
Run Code Online (Sandbox Code Playgroud)
因此,要么定义默认构造函数,要么不使用它.
归档时间: |
|
查看次数: |
39732 次 |
最近记录: |