错误C2512:没有适当的默认构造函数可用 [英] error C2512: no appropriate default constructor available

查看:401
本文介绍了错误C2512:没有适当的默认构造函数可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到这个恼人的错误,我不知道为什么=(!
这是问题,我解决了,但我有一个问题的构造函数。


编写一个程序,定义一个名为Circle的类,其中包含radius作为数据成员。为此数据成员提供一个集合和一个get函数
。用户输入的值是
有效且正确(大于零)。

包括函数成员:计算和返回圆的直径的a.function成员b.function成员计算和
返回圆的圆周c.function成员计算和
return圆的面积d.function成员显示所有
圆的信息e.constructor初始化数据
member。如果半径无效(即小于零),将其设置为
零。


我面临:


错误C2512:'Circle':没有适当的默认构造函数


这是我的代码:

  #include< iostream> 

using namespace std;

class Circle
{
public:

Circle(double);
void setRadius(double);
double getRadius();
void Display();
double Diameter(double);
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<< 输入半径:\\\
;
cin>>拉多
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< 圆的半径是:\\\
;
cout<<半径;
cout<< \\\
圆的直径是:\\\
;
cout<<直径(半径);
cout<< \\\
圆的圆周是:\\\
;
cout<<圆周(半径);
cout<< \\\
圆的面积是:\\\
;
cout<<面积(半径);
cout<< endl;
}

int main()
{
Circle C;
C.getRadius();
C.Display();

return 0;
}


解决方案

此行调用构造函数没有参数(称为默认构造函数):

  

您定义的唯一构造函数是:

  Circle(double);希望这可以指向正确的方向。


I am getting this annoying error and I don't know why =( ! This is the question , I solved it but I am having a problem with the constructor.

Write a program that defines a class called Circle that includes radius (type double) as data members. Provide a set and a get function for this data member. Ensure that the value entered by the user is valid and correct (greater than zero).
Include function members: a.function member that compute and return Diameter of the circle b.function member that compute and return Circumference of the circle c.function member that compute and return Area of the circle d.function member that Display all information of the circle e.constructor that initializes the data member. If the radius is not valid (i.e. less than zero) set it to zero.

the error I am facing :

error C2512: 'Circle' : no appropriate default constructor available

this is my code :

    #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;
        }

解决方案

This line invokes a constructor with no arguments (known as default constructor):

Circle C;

The only constructor you have defined is:

Circle(double);

Hopefully this should point you in the right direction.

这篇关于错误C2512:没有适当的默认构造函数可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆