• ベストアンサー

このコンパイルエラーの意味について教えていただけるとありがたいです

C++を勉強しだした大学生です。 唐突で大変恐れ入りますが、 次のエラー文の意味について、 検索しても、今一よく理解する記事に遭遇できず、 呆然としています。 これはどういった意味のエラー文でしょうか? お手数おかけしますが、 お力添えの程宜しくお願い致します。 error: cannot allocate an object of abstract type ‘dir1::fileA<dir2::dir3::fileB>’ 補足させていただきます。 ===================================================== ・「dir1」は「1」という名称のディレクトを指します。 ・「dir2」と「dir3」も「dir1」とは別にある他のディレクトリを指します。 ・「fileA」は「file.hpp」というファイル名です。 ・「fileB」も「fileB.hpp」というファイル名を指します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

名前空間の宣言が見えないし, 肝心なところだけきっちり消された印象があるのはなぜだ.... ちゃんと「csrpc::peer<kbr::chord::chord> は抽象クラスだからインスタンス化できない」って書いてある. しかも, このクラスがなぜ抽象クラスかというと 「onden::peer<kbr::chord::chord> が純粋仮想関数を持っている」 とまで書いてある. だから, csrpc::peer や onden::peer の定義を確認して, 必要なら onden::peer から継承しているであろう仮想関数を定義してやること. それが何かは書いてもらえないので知らない.

kdome
質問者

お礼

Tacosanさん! とてもよく、 エラーの内容を把握できました! とても助かりました! ありがとうございました!

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

超能力者がそんなにいるとは思えないので, ・あなたの使っている処理系 (OS, コンパイラなど) の名称とバージョン ・関係するソースの部分 (特に名前が挙がっている型の宣言のところ) あたりを示してください.

kdome
質問者

補足

Tacosanさん 不足点が多く大変失礼しました。 いくつか補足させていただきました。 ページ下の方になってしまいますが ご参照いただけると大変ありがたいです。 宜しくお願い致します。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

エラーメッセージの意味がわかりさえすればよくて、 解決しなくてもいいのですか? 解決させたいのであれば、そのエラーメッセージを出した ソースコードを提示してください。

kdome
質問者

補足

asuncionさん 分かりにくくて大変恐縮でした。 いくつか補足させていただきましたので、 ご参照いただけるとありがたい次第です。

  • Gab_km
  • ベストアンサー率40% (20/50)
回答No.1

「ディレクトリを指す」や「ファイル名である」と言うのは、もう少し具体的にどういう意味でしょうか。 もしかして、ただの文字列だったりしますか? それとも、ファイル構造体などの意味なのでしょうか。 実際のコードの様子が分からないので的確なことは言えませんが、参考URLに挙げた内容が言っていることと近いのかもしれません。

参考URL:
http://natu.txt-nifty.com/natsutan/2007/06/avm_in_order_co.html
kdome
質問者

お礼

Gab_kmさん! いただきました参考URLや御意見が とても役立ちました。 このたびは、 お忙しい中アドバイスいただきまして ありがとうございました!

kdome
質問者

補足

皆様分かりにくくて大変恐縮でした。 以下のとおりそのままのエラー文を持ってきましたので、 ご参照いただけるとありがたい次第です。 OS:fedora9 コンパイラ:gcc 「Gab_km」様が参考としてあげていただいたURLにある エラー文とほぼ同一です。 ../../sakura/include/sakura/detail/sakura_peer.hpp:730: error: cannot allocate an object of abstract type ‘csrpc::peer<kbr::chord::chord>’ ../../onden/include/onden/peer.hpp:129: note: since type ‘onden::peer<kbr::chord::chord>’ has pure virtual functions エラーメッセージを出したソースコードに関してですが、 あまりにも長いソースなので、エラーの出ていた 行番号周辺(sakura_peer.hpp:730/peer.hpp:129)を持ってきてみました。 #cat -n sakura_peer.hpp 721 private: 722 template<typename PEER_OB, typename PEER_HA, typename PEER_DI> 723 struct sakura_peer_impl { 724 typedef PEER_OB peer_ob; 725 typedef PEER_HA peer_ha; 726 typedef PEER_DI peer_di; 727 728 typedef boost::shared_ptr<peer_ob> peer_pointer; 729 730 sakura_peer_impl() : _peer(new typename traits::peer_ob()) { 731 CTL_TRACER("sakura"); 732 } 733 #cat -n peer.hpp 122 template<typename AIR> 123 class peer : 124 public abstruct_peer<typename AIR::proxy>, 125 public sakura::peer_base<peer<AIR>, 126 typename oden_traits<AIR, sakura::peer>::ha, 127 typename oden_traits<AIR, sakura::protocol>::ha, 128 typename oden_traits<AIR, sakura::nod>::ha> 129 { 130 public: 131 typedef AIR air; 132 typedef air object; 133 typedef typename air::proxy proxy; 134 135 typedef abstruct_peer<proxy> abstruct_peer_type; 136 137 typedef typename proxy::ha proxy_ha_type; 138 typedef oden::rpc_re<proxy_ha_type> rpc_re_type; 139 140 typedef typename sakura::peer_base<peer<AIR>, 141 typename oden_traits<AIR, sakura::peer>::ha, 142 typename oden_traits<AIR, sakura::protocol>::ha, 143 typename oden_traits<AIR, sakura::nod>::ha 144 > peer_base_type; 145 146 virtual typename oden_traits<AIR, sakura::peer>::ha get_ha() { 147 CTL_TRACER("oden"); 148 return typename oden_traits<AIR, sakura::peer>::ha(&peer::send_m, 149 &peer::recv_m, 150 &peer::get_proxy, 151 }

関連するQ&A

専門家に質問してみよう