Виртуальные методы, static, неразрешенный внешний символ

class mehanizm
{
    static list<mehanizm*> Mehanizm;
    
protected:
    static mehanizm* begin;
    static mehanizm* next;
    string name;
    int massa;
    float prise;
    void print() {
        cout << name << endl;
        cout << massa << endl;
        cout << prise << endl;
    };
    static void add(mehanizm* A) { Mehanizm.push_back(A); }
    mehanizm() { add(this); }

    void show() { while (begin != 0) { 
        begin = begin->next;
        print();
    } 
    };
};
list<mehanizm*> mehanizm::Mehanizm = list<mehanizm*>();
static mehanizm* begin;
static mehanizm* next;

Ну дык найдите 2 отличия.