クラスへのポインタを含む std::vector をコピーする必要があります。機能は次のとおりです。
Clone::Clone( const Clone &source )
{
m_pDerivate.clear();
std::vector<Derivate *>::const_iterator it;
it = source.m_pDerivate.begin();
for (it = source.m_pDerivate.begin(); it != source.m_pDerivate.end(); ++it) {
m_pDerivate.push_back(new Derivate(it));
}
}
Derivate コンストラクターは次のとおりです。
Derivate::Derivate( const Derivate &source )
{
_y = source._y;
_m = _strdup(source._m);
}
しかし、コンパイルすると、次のエラーが発生します...
cannot convert parameter 1 from 'std::_Vector_const_iterator<_Myvec>' to 'const Derivate &'
...行で:
m_pDerivate.push_back(new Derivate(it));
行を変更すると...
m_pDerivate.push_back(new Derivate((const Derivate &)(*it)));
...コンパイルは正常に行われますが、派生コンストラクターはデータを正しく受け取りません。
手伝って頂けますか?
前もって感謝します。