C言語を終えてC++の初学者なんですが、C言語のリスト処理をクラスを使って書いてみようと思い自分なりに書いているのですが。下のあたりのコメントで[//書き込みアクセス違反]となっている部分の修正方法を教えてもらいたいです。できれば解説もお願いします。

/*
int main(){
    list test;
    test = 5;

    _getch();

    return 0;
}
*/

/*
class list {
    private:
        typedef struct struct_list {
            int height, width;
            string name;

            struct struct_list *prev, *next;

        }st_list;

        st_list *p, *t,*date; int n;
        st_list *start;//先頭のポインタを保存
        int number;//入力した数

    public:
        list():n(0),number(0){};//デフォルトコンストラクタ

        list(int x);//コンストラクタ
};
*/

list::list(int x) {
    number = x;//リスト作成数を決める
    int a = 0;

    do {
    /*
    do {
        cout << "リストを作りますか? [YES --- 0 / NO --- 9]: ";
        cin >> n;

        if (n != 0 && n != 9)
        {
            cout << "0か9を入力してください\n";
        }
    } while (n != 9);
    */

        date = new st_list;

        cout << "身長を入力してください:"; cin >> date->height;
        cout << "名前を入力してください:"; cin >> date->name;
        cout << "体重を入力してください:"; cin >> date->width;

        date->next = NULL;

        if (start == NULL)
        {
            date->prev = NULL;
            start = date;
            p = date;
        }
        else {/*先頭以降*/
            p->next = date;//書き込みアクセス違反
            date->prev = p;
            p = date;
        }

        ++a;

    } while (a != number);

}