C++を初めて使用しています。私はこのコードをstructを作成して、C++でmutable
キーワードの使用法を表示しています。変数に初期化子がありますが、不完全な型があります。C++
#include <iostream>
using namespace std;
int main()
{
struct
{
mutable double radius;
double PI = 3.142;
double getArea()
{
return (PI * radius * radius);
}
} circle;
const struct circle c1 = {2.0};
circle.radius = 7;
cout << "Area is " << circle.getArea() << endl;
return 0;
}
しかし、コンパイルするとき、私は、次のエラーメッセージが表示されます。
error: variable const main()::circle c1 has initializer but incomplete type
エラーがラインconst struct circle c1 = {2.0};
にc1
です。誰も私にここでエラーを指摘することはできますか?
「変更可能」はほとんどありません。 OTOH、PIはおそらく 'static constexpr double'でなければなりません(別のサークルを持っていれば、PIのコピーは必要ありません)。うんざりすると、メインの外側でサークルの宣言を動かす必要があります。最後に 'using namespace std; 'を使わないでください。 –