私はC++にはとても新しいので、単純なことを見落としてしまった場合は私を許してください。私はクラスを持っていますサークル:C++のデフォルトのコンストラクタが呼び出されていない
}しかしサークルはサークル(で作成された私は、各コンストラクタを使用して2つの円を作成しようと私のメインで
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();
}
、:
は、私が過負荷にしたデフォルトそのうちの1つは2つのコンストラクタを持っています)は決して創造されない。なぜ私の人生のために理解できないのですか?エラーメッセージなどはありません。
int main{
Circle circle(a, 3.3);
Circle c2();
}
これは完璧に働いた、ありがとう。私は最終的にそれが午前3時でなければ気づいたかもしれません。私は今終わると思う。 – MichelleJS
また、 'Circle c2 {}'は値の初期化で、 'Circle c2;'はデフォルトの初期化です。 – Nawaz
ああ、それは*ほとんど*厄介な構文解析ではありません。それはちょうど厄介な*解析です。 'Type1 a(Type2());'は*ほとんどの* vexing解析です。 – Nawaz