Изменение значения векторной переменной-члена в функции-члене - PullRequest
0 голосов
/ 14 апреля 2020

A имеет функцию в моем классе, которая выглядит примерно так:

void SomeClass::SomeFunction(int i, int j){

    float var = MemberVector[i][j];
    float temp;
    temp = var * -1;
 ~~~Some Condition~~~{
        MemberVector[i][j] = temp;
    }
}

Я хочу получить значение в [i] [j] в переменной-члене вектора и умножить его на -1 т.е. сделать его положительным, если оно отрицательное, и наоборот.

Я думал, что векторный оператор [] возвращает ссылку на значение a, указанное в квадратных скобках, но когда я запускаю свой код, он не изменяет значения в векторной переменной-члене.

Есть ли способ обратиться, чтобы получить значение в [i] [j] в переменной-члене по ссылке внутри функции-члена и изменить его, как я описываю?

1 Ответ

1 голос
/ 14 апреля 2020

Если вы напишите что-то вроде

int x = y;

, тогда x будет копией y. Изменение x приведет к не изменению y.

. Для этого вам потребуется ссылка, подобная этой:

int &x = y;
x = 42; // now y is also 42

В вашем случае вы не даже не нужна ссылка. Вы можете просто изменить элемент напрямую,

MemberVector[i][j] *= -1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...