有類型的問題,而分配,例如我有型點型班線沒有指定類型
class point:public pair<int, int>
{
private: int index;
public: point(int);
point(int, int, int);
int GetIndex();
float GetDiff(point);
};
point::point(int Index): index(Index) {};
point::point(int x, int y, int Index): index(Index)
{
first = x;
second = y;
}
int point::GetIndex()
{
return index;
}
float point::GetDiff(point Point)
{
return pow(pow(Point.first-first,2.0f) + pow(Point.second-second,2.0f),0.5f);
}
它編譯正確,並且運作良好[我想)] 但是當我想使用它,我得到一個錯誤,那就是使用這個類(點)代碼
class Line
{
public:
Line();
point firstPoint;
point secondPoint;
};
Line::firstPoint = point(0); // i get error, same as on line 41
//and for example
struct Minimal
{
Minimal();
Line line();
void SetFirstPoint(point p)
{
line.firstPoint = p;//41 line, tried point(p), same error.
UpdateDist();
}
void SetSecondPoint(point p)
{
line.secondPoint = p;
UpdateDist();
}
void UpdateDist(void)
{
dist = line.firstPoint.GetDiff(line.secondPoint);
}
float dist;
};
哪裏是給我的gcc編譯器
|41|error: 'firstPoint' in 'class Line' does not name a type|
Line line();是一種方法而不是一個對象。在第41行,你試圖像使用對象一樣使用它。 – haitaka 2013-03-02 14:56:38