Я получаю указанную ошибку в этой строке "b = true". Теперь, почему я получаю эту ошибку? Разве я не указываю на TurnMeOn и таким образом говорю TurnMeOn = true?
class B{ void turnOn(bool *b){b = true} }; int main(){ B *b = new B(); bool turnMeOn = false; b->turnOn(&turnMeOn); cout << "b = " << turnMeOn << endl; }
b->turnOn(&turnMeOn);
и
*b = true;
turnOn требует указатель на bool в качестве параметра. Вы используете это как фактический bool. Я полагаю, вы ищете ссылку, т.е. bool& b как объявление параметра в вашем методе.
turnOn
bool
bool& b
Нет. Как вы уже написали, это должно быть *b = true.
*b = true
В качестве альтернативы, вы можете написать функцию для передачи ссылки в bool, чтобы
void turnOn(bool &b) { b = true; }
будет правильно.