dポイントプレゼントキャンペーン実施中!

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」というファイル名を指します。

A 回答 (4件)

名前空間の宣言が見えないし, 肝心なところだけきっちり消された印象があるのはなぜだ....


ちゃんと「csrpc::peer<kbr::chord::chord> は抽象クラスだからインスタンス化できない」って書いてある. しかも, このクラスがなぜ抽象クラスかというと
「onden::peer<kbr::chord::chord> が純粋仮想関数を持っている」
とまで書いてある. だから, csrpc::peer や onden::peer の定義を確認して, 必要なら onden::peer から継承しているであろう仮想関数を定義してやること. それが何かは書いてもらえないので知らない.
    • good
    • 0
この回答へのお礼

Tacosanさん!

とてもよく、
エラーの内容を把握できました!

とても助かりました!
ありがとうございました!

お礼日時:2009/01/08 09:49

超能力者がそんなにいるとは思えないので,


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

この回答への補足

Tacosanさん

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

補足日時:2009/01/07 22:23
    • good
    • 0

エラーメッセージの意味がわかりさえすればよくて、


解決しなくてもいいのですか?

解決させたいのであれば、そのエラーメッセージを出した
ソースコードを提示してください。

この回答への補足

asuncionさん

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

補足日時:2009/01/07 22:22
    • good
    • 0

「ディレクトリを指す」や「ファイル名である」と言うのは、もう少し具体的にどういう意味でしょうか。



もしかして、ただの文字列だったりしますか?
それとも、ファイル構造体などの意味なのでしょうか。

実際のコードの様子が分からないので的確なことは言えませんが、参考URLに挙げた内容が言っていることと近いのかもしれません。

参考URL:http://natu.txt-nifty.com/natsutan/2007/06/avm_i …

この回答への補足

皆様分かりにくくて大変恐縮でした。
以下のとおりそのままのエラー文を持ってきましたので、
ご参照いただけるとありがたい次第です。

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 }

補足日時:2009/01/07 22:19
    • good
    • 0
この回答へのお礼

Gab_kmさん!

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

お礼日時:2009/01/08 09:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A