Я реализовал пользовательский класс матрицы шаблонов, и у меня есть функция, с которой мне нужна помощь. Я пытаюсь перегрузить оператор + =, для которого я использую перегруженный оператор [], который я уже реализовал и работает. Проблема в том, что я не знаю, как включить указатель this в оператор [].
Вот что я пытаюсь сделать:
Matrix & operator+= (const Matrix & rhs)
{
if(this->numrows() != rhs.numrows() || this->numcols() != rhs.numrows())
{
cout << "ERR0R: Cannot add matrices of different dimensions." << endl;
return *this;
}
else
{
theType temp1, temp2, temp3;
for(int i = 0; i < this->numrows(); i++)
{
for(int j = 0; j < this->numcols(); j++)
{
temp1 = this->[i][j];
temp2 = rhs[i][j];
temp3 = temp1 + temp2;
this->[i][j] = temp3;
}
}
return *this;
}
}
Независимо от моего неисправного / любительского / избыточного кодирования: P моя главная проблема в том, как я могу использовать указатель «this» так же, как я называю «rhs [i] [j]». (Поскольку ни this -> [i] [j], ни this. [I] [j] не работают)
Я думал, что, может быть, это сработает долго << например: this-> operator [] (i) >>, но я не могу понять, как включить в это двойные скобки. Или, может быть, есть другая альтернатива полностью. Надеюсь, я все хорошо объяснил. У меня есть ощущение, что ответ действительно прост. Я просто в тупик. Любая помощь приветствуется.
СПАСИБО.