Tôi rất mới với C++ vì vậy tha thứ cho tôi nếu tôi đã bỏ qua một cái gì đó đơn giản. Tôi có một Vòng kết nối lớp học:C++ mặc định Constructor không được gọi là
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);
};
Tôi có hai nhà thầu, một trong số đó là mặc định mà tôi đã quá tải:
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();
}
Trong chính tôi, tôi cố gắng tạo ra hai vòng tròn một cách sử dụng mỗi nhà xây dựng, tuy nhiên Circle được tạo ra với Circle () không bao giờ được tạo. Tôi không thể cho cuộc sống của tôi tìm ra lý do tại sao? Không có thông báo lỗi hoặc bất cứ điều gì.
int main{
Circle circle(a, 3.3);
Circle c2();
}
Điều đó hoạt động hoàn hảo, cảm ơn. Tôi có thể cuối cùng đã nhận thấy rằng nếu nó không phải là 3 giờ sáng. Tôi nghĩ rằng thời gian nghỉ của nó bây giờ. – MichelleJS
Hoặc tốt hơn: 'Circle c2 {}' là khởi tạo giá trị và 'Circle c2;' là khởi tạo mặc định. – Nawaz
Oh BTW, đó không phải là hầu hết * phân tích cú pháp vexing. Nó chỉ là * vexing * phân tích cú pháp. 'Type1 a (Type2());' là * hầu hết * phân tích cú pháp vexing. – Nawaz