C ++ default未调用构造函数 [英] C++ default Constructor not being called
问题描述
我对c ++非常新,所以原谅我,如果我忽略了一些简单的东西。我有一个类Circle:
I am very new to c++ so forgive me if I have overlooked something simple. I have a class Circle:
class Circle: public Shape{
protected:
//string name;
Point focus;
float radius;
private:
public:
virtual void calculateArea();
virtual void calculatePerimeter();
Circle();
Circle(Point p, float r);
};
,其中一个是我重载的默认值:
I have two constructors, one of which is the default which I have overloaded:
Circle::Circle()
{
Point p(1,1);
focus = p;
radius = 10;
name = "Circle";
calculatePerimeter();
calculateArea();
cout<<"default circle"<<endl;
}
Circle::Circle(Point p, float r)
{
focus = p;
radius = r;
name = "Circle";
calculatePerimeter();
calculateArea();
}
在我的主要我尝试创建两个圆一个使用每个构造函数,但使用Circle()创建的Circle永远不会被创建。我不能为我的生活找出为什么?没有错误消息或任何内容。
In my main I try to create two circles one using the each constructor, however the Circle being created with Circle() never gets created. I cannot for the life of me figure out why? There are no error messages or anything.
int main{
Circle circle(a, 3.3);
Circle c2();
}
推荐答案
Circle c2();
不创建对象,它通过名称声明一个函数 c2
它不带参数并返回一个
Circle
对象。如果你想创建一个对象只需使用:
Does not create an object, it declares a function by name c2
which takes no argument and returns a Circle
object. If you want to create a object just use:
Circle c2;
这篇关于C ++ default未调用构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!