Я очень новичок в C++, поэтому простите меня, если я упустил что-то простое. У меня есть класс Круг:C++ default Конструктор, который не называется
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();
}
В моей основной я пытаюсь создать два круга один, используя каждый конструктор, однако круг создается с кругом () никогда не создается. Почему я не могу понять, почему? Нет сообщений об ошибках или что-то еще.
int main{
Circle circle(a, 3.3);
Circle c2();
}
Это сработало отлично, спасибо. Возможно, я в конце концов заметил, что если бы не 3ам. Я думаю, что сейчас он уходит. – MichelleJS
Или еще лучше: 'Circle c2 {}', который инициализируется значением, и 'Circle c2;' является инициализацией по умолчанию. – Nawaz
Oh BTW, это не * самый * неприятный синтаксис. Это просто * досадный * синтаксический анализ. 'Type1 a (Type2());' is * most * vexing parse. – Nawaz