错误C2440:'=':无法从'bool'转换为'bool *'

时间:2010-05-30 15:46:14

标签: c++ class pointers boolean

我在这行“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;
}

3 个答案:

答案 0 :(得分:8)

b->turnOn(&turnMeOn);

   *b = true;

答案 1 :(得分:5)

turnOn需要指向bool的指针作为参数。您将其用作实际bool。我想你正在寻找一个参考,即bool& b作为方法中的参数声明。

答案 2 :(得分:4)

没有。正如你所写,它需要*b = true

或者,您可以编写函数将引用带到bool,以便

void turnOn(bool &b) { b = true; }

是正确的。