我是C++新手。我有這個代碼來創建一個結構,以顯示在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
誤差在c1
在該行const struct circle c1 = {2.0};
。任何人都可以在這裏指出我的錯誤。
你幾乎肯定不希望'mutable'在那裏。 OTOH,PI應該是'static constexpr double'(如果你有不同的圓圈,你不需要PI的不同副本)。令人煩惱的是,您隨後必須移動主要外部的圓的聲明。最後,不要使用'namespace std;' –