Witam,
Mam problem z prawdlowym zdefiniowaniem konstruktora kopiujacego dla mojej klasy Matrix.
kod klasy Matrix
#include <sstream> // stringstream
#include <iostream> // cout, cerr
#include <fstream> // ifstream
#include <istream>
using namespace std;
class Matrix
{
public:
Matrix()
{
}
Matrix(int sizeR, int sizeC, double* input_data)
{
cout << "Constructor of the matrix class";
M = sizeR;
N = sizeC;
data = new double[M*N];
for (int ii=0; ii<M*N; ii++)
{
data[ii] = input_data[ii];
}
}
~Matrix()
{
cout << "Deconstructor of the matrix class";
delete [] data;
}
int GetValue(int i, int j) const {return data[i*N+j];}
void SetValue (int i, int j, double val) {data[i*N+j] = val;}
private:
int M;
int N;
double* data;
};
Moja implementacja konstruktora kopiujacego jednak nie dziala
Matrix(const Matrix& ExistingMatrix)
{
cout << "Copy constructor of the matrix class";
M = ExistingMatrix.M;
N = ExistingMatrix.N;
data = new double[M*N];
for (int ii=0; ii<M*N; ii++)
{
data[ii] = ExistingMatrix.data[ii];
}
}
Przy probie tworzenia kopii objektu klasy Matrix uzywajac w/w konstruktora dostaje blad:
Debug error!
Invalid allocation size 4294967295 bytes.
Pomocy!