Witam,
mam problem z przeciążeniem operatora [][]. Napisałem program ze zliczaniem odwołań, dlatego, żeby opóźnić kopiowanie danych muszę zastosować 2 klasy.
class CMatrix::Cref2
{
friend class CMatrix;
CMatrix& s;
unsigned int col;
unsigned int row;
Cref2 (CMatrix& ss, unsigned int i, unsigned int j): s(ss), col(i), row(j) {};
public:
CMatrix::Cref2::Cref operator[](unsigned int nrow)
{
row=nrow;
s.check(col,row);
return Cref(*this);
}
};
class CMatrix::Cref2::Cref
{
friend class CMatrix;
friend class Cref2;
Cref2 &s;
Cref (Cref2& ss): s(ss) {};
public:
};
Jednak przy takim zapisie pojawia się błąd
matrix.h:104:3: error: return type ‘class CMatrix::Cref2::Cref’ is incomplete
{
^
matrix.h:107:22: error: invalid use of incomplete type ‘class CMatrix::Cref2::Cref’
return Cref(*this);
Z góry dzięki za pomoc.
Pozdrawiam.