我对c++非常陌生,所以如果我忽略了一些简单的东西,请原谅。我有一个类圈子:
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);};
我有两个构造函数,其中一个是我重载的默认构造函数:
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();
}在我的main中,我尝试创建两个Circle,一个使用each构造函数,但是使用Circle()创建的Circle永远不会被创建。我无论如何也想不出为什么?没有错误消息或任何东西。
int main{
Circle circle(a, 3.3);
Circle c2();
}发布于 2013-10-27 15:28:27
Circle c2();不创建对象,它使用名称c2声明一个函数,该函数不带任何参数并返回一个Circle对象。如果你想创建一个对象,只需使用:
Circle c2;发布于 2013-10-27 15:28:42
这里不是实例化,而是函数声明:
// parameter-less function c2, returns a Circle.
Circle c2();你需要
Circle c2;或
Circle c2{}; // requires c++11https://stackoverflow.com/questions/19615659
复制相似问题