私のクラス VecXd example -> VecXd x,y,z; を呼び出すときに、テンプレートと一緒にメインでベクトルを追加するプロジェクトに取り組んでいます。返される値は正しいですが、VecXd x,y,z; を使用してメインから再度呼び出すと、私の operator= が返す値は範囲外になりますが、その理由は誰にも分かりますか?
template< class V >
class VecXd {
std::size_t dimension;
V* vecArr;
public:
...
VecXd& operator=(const VecXd &rhs)
{
// cout << rhs.vecArr[0] << "-= value at 0 rhs" << endl; value is fine
dimension = rhs.dimension;
cout << dimension << "operator= dimension test!" << endl; ///dimension check
vecArr = new V[dimension];
for(int i = 0; i < rhs.dimension; i++)
{
vecArr[i] = rhs.vecArr[i];
cout << vecArr[i] << " our new value (op=)" << endl;
}
return *this;
}
};