訂正です。
コードの下のほう

  for(int i=0; i<N; ++i){
    cout << p[i].get_a() << "\n";
  }
の間違いでした。これでエラーは一つ消えました。