erreur:un non membre de référence doit être relatif à un objet spécifique

Je ne comprends pas pourquoi la vue me donne l'erreur d'un membre non statique de référence doit être relatif à un objet spécifique.

CDrawView::Shape est un enum que j'ai déclaré sur mon CDrawView

enum shape{line, rect, elli};
shape current_shape;

C'est mon autre classe

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());
        }
    }
}

Quelle est la meilleure pratique pour éviter cette erreur

Vous avez besoin de comprendre la différence entre statique et non-membres statiques. Les solutions de base sont: (a) vous faire une fonction membre non statique, ou (b) faire de votre variable membre statique.

OriginalL'auteur user1665569 | 2013-03-28