我不明白爲什麼視圖給了我一個非靜態成員引用的錯誤必須是相對於特定對象。錯誤:非靜態成員引用必須是相對於特定對象
CDrawView::Shape
是,我已經宣佈枚舉我CDrawView
enum shape{line, rect, elli};
shape current_shape;
這是我的其他類
class Shapemaker
{
public:
CDrawView view;
static void Create(CDrawView::shape)
{
if(view.current_shape == view.line)
{
view.m_shape.reset(new Line());
}
else if(view.current_shape == view.rect)
{
view.m_shape.reset(new Rect());
}
}
}
什麼是最好的做法,以避免這個錯誤
您需要了解靜態和非靜態成員之間的區別。基本的解決方案是(a)讓你的成員函數是非靜態的,或者(b)使你的成員變量是靜態的。 –