私はshared_ptr
このようなオブジェクトを構築する際に使用します:
std::tr1::shared_ptr<RawClusterBase> rawCluster(new RawClusterBase());
// ...
rawCluster->addLabel(p->userFriendlyTerms());
// ...
const TokenizedDocument * tokenizedDoc
= (TokenizedDocument *)documents.at(i);
const RawDocument * rawDoc
= dynamic_cast<const RawDocument *>(tokenizedDoc->getProperty(
TokenizedDocument::_PROPERTY_RAW_DOCUMENT));
rawCluster->addDocument(rawDoc);
:の行でセグメンテーション違反が発生しdynamic_cast
ます
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b92429 in __dynamic_cast () from /usr/lib/libstdc++.so.6
(gdb) backtrace
#0 0x00007ffff7b92429 in __dynamic_cast () from /usr/lib/libstdc++.so.6
#1 0x0000000000444aa5 in main (argc=1, argv=0x7fffffffe258) at clustering/document_test.cpp:271
誰かが私にそれを解決する方法の指針を与えることができますか?プロジェクトには、dynamic_cast
サブクラスの分析に使用する別のセクションがあります。私もshared_ptr
そこで使うつもりですが、同じトラブルに遭遇するのではないかと思います。dynamic_cast
で動作していませんshared_ptr
か?
ヒントは大歓迎です!