私はこの仮想メソッドを持っています:
const string& my_class::to_string() const
{
string str(this->name + string(" "));
if(!this->children.empty())
{
for(const std::shared_ptr<base_class> e : this->children)
str.append(e.get()->to_string());
}
return str;
}
はどこchildren
にあり、std::list<std::shared_ptr<base_class>>
はをmy_class
継承しbase_class
ます。しかし、(のmy_class::to_string
)最初の再帰呼び出しの後、そしてこの子を返した後str
、私は悪い割り当てを取得します。
なんで?