最初に that->getValue() を呼び出そうとすると良さそうに見えますが、下の行 (while ループの先頭) だけで getValue メソッド内に「アクセス違反」というエラーが表示されます。
if(first != 0){
listElement *that = first;
cout << "add: " << that->getValue() << " | " << value << endl;
while(that->getValue() < value) {..}
}
通話中にどこでも値を編集できますか? getメソッドは「戻り値」だけで構成されています....